0

我正在使用 Symfony2。我在表单构建器中有两个字段,当我在第一个字段中选择一个选项时,第二个字段中的信息应该根据第一个选项动态重新加载。

我该怎么做 ?

4

1 回答 1

1

我们需要什么?

假设为简单起见,当用户键入“敲敲”时,下一个字段将填充“谁在那里”。

假设第一个字段(用户将填写)的 id 为#input_filled_by_user,另一个字段的 id 为#input_filled_with_php.

我们如何解决这个问题?

只要用户将在脚本执行后打字,我们就需要告诉我们他用“knock knock”(即 jQuery)写的特定单词,并将其发送到控制器(一个花哨的名称休息API)。

然后在控制器中我们处理并发送回结果,并使用 jQuery(再次)将结果输出给用户。

编码

首先我们需要一个路由器:

my_door_keeper_router:
    pattern:  /request/{string}
    defaults: { _controller: AcmeDemoBundle:door:keeper, _format: ~ }
requirements:
    _method: GET
    id: "\d+"

这是动作控制器:

public function keeperAction($string)
{

    if ($string == 'knock knock') {
        echo "hello"; // please dont do it with echo use symfony way , i just dont have enough time 
    }

    return;
}

现在使用 jQuery:

$('#input_filled_by_user').change(
   function(){
      $.get('/request', { string: $(this).val() } ,function(data) {
  $('#input_filled_with_php').val(data);
  alert('Load was performed.');
});
   }
)

就是这样。希望这是有道理的(请深入挖掘,我试图以虚拟的方式解释它,我提到的一些事情是正确的,但无论你现在想要做什么,你都可以这样做)。

于 2013-05-17T20:36:04.120 回答