我正在使用Symfony2。我在表单构建器中有两个字段,当我在第一个字段中选择一个选项时,第二个字段中的信息应该根据第一个选项动态重新加载。
我该怎么做?
答案 0 :(得分:1)
我们需要什么?
让我们假设为了简单起见,当用户输入'knock knock'时,下一个字段中填写的是“谁在那里”。
假设第一个字段(用户将填写)的ID为#input_filled_by_user
,而另一个字段的ID为#input_filled_with_php
。
我们如何解决这个问题?
只要用户在脚本执行后输入,我们需要告诉我们他写的具体单词或者'knock knock'(即jQuery),并将其发送给控制器(a休息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.');
});
}
)
就是这样。希望这是有道理的(请深入挖掘,我试图用虚拟方式解释它,我提到的一些事情是正确的,但无论你现在想做什么,你都会这样做。)