我想在Symfony2中创建一个表单,它显示一组单选按钮,取决于属于同一表单的组合框中的选定值。
我在Symfony2中找不到合适的解决方案,可以让我拥有这个功能。
是否有任何方法使用Symfony2框架至少部分的实现或我应该手动生成表单?Symfony2动态表单域
1
A
回答
4
你在找什么是AJAX。这可以用直接的JavaScript或jQuery来实现(jQuery更简洁,更易于使用)。
这里有一个jQuery的存根,你得到的是什么人,何时,一个想法:如果你不熟悉AJAX & jQuery的
<script language="javascript">
$('#mySelect').change(function() {
$.post('backgroundScript.php', {
val: $(this).val()
}, function(data) {
$('#radioDiv').html(data);
});
});
</script>
,我会解释这是怎么回事。 $('#mySelect')
几乎相当于javascript的getElementById()
函数。它们是不是相同的功能(jQuery使用与css相同的符号来查找要查找的元素),但是这将返回元素作为其id属性的mySelect
。
.change()
将onChange事件处理程序设置为括号内定义的function()
。 $.post
是用于执行AJAX post
(而不是get
)的jQuery速记,即发送到backgroundScript.php,无需加载页面。当backgroundScript.php返回200状态(即“一切正常,这是我的输出”),它将执行回调函数function(data)
。
backgroundScript.php将作为$ _POST变量接收val
并执行“某事”以确定应显示哪个单选按钮,然后将输出写入屏幕。
EDIT(详细信息):
backgroundScript.php应该是这个样子,如果你基于数据库确定单选按钮。 请记住,这是没有考虑到的废弃的函数安全或考虑(如mysql_*
),只是功能写:
<?php
// backgroundScript.php
$masterVal = $_POST['val'];
$output = "";
$query = "SELECT bt.button_value, bt.button_label
FROM button_table as bt
WHERE bt.button_master_id = " . $masterVal;
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
$output .= "<input type='radio' name='radioGroup' value='" .
$row['button_value'] . "' /> " . $row['button_label'];
}
echo $output;
1
你可以尝试使用Symfony2的表单生成器,它允许构建形式编程。
这将是可能的,如果你能确定形式施工前实体...
相关问题
- 1. 动态表单域
- 2. 如何在动态表单域中添加动态表单域?
- 3. Symfony2自定义表单域
- 4. MVC动态表单域
- 5. 极限动态表单域
- 6. 动态隐藏表单域
- 7. CakePHP的:动态表单域
- 8. 动态添加表单域
- 9. 动态表单域与PHP
- 10. Symfony2动态表单构建器
- 11. Symfony2 createFormBuilder - 动态高级搜索表单
- 12. symfony2中的动态表单验证
- 13. 动态表单(切换实体)symfony2
- 14. Symfony2双嵌套动态表单字段
- 15. Symfony2:动态验证表格
- 16. Symfony2 - 使用eventListener修改表单域
- 17. Symfony2添加一个表单域错误
- 18. Symfony2实体表单域需要multichoice
- 19. Symfony 1.4中的动态表单域
- 20. 动态表单域与JQuery覆盖
- 21. Ruby on Rails:jquery/ajax动态表单域
- 22. 动态添加/删除表单域
- 23. angularjs中的动态表单域
- 24. Django管理动态表单域人口
- 25. 对动态表单域进行计算
- 26. Coldfusion:插入父/子动态表单域
- 27. 删除动态表单域JS/HTML
- 28. jquery动态添加表单域问题
- 29. django动态变量表单域
- 30. 对齐动态生成的表单域
@Bogdan这听起来像你想做什么是动态HTML(单选按钮会更改,恕不页面当有人从组合框中选择值时刷新)是否正确? – Matt 2012-07-27 12:57:51
@Matt是的,你是对的。我不希望Symfony为我提供一个特定的解决方案,但是根据过去的经验,我已经了解到,即使涉及JavaScript,它也可能会有所帮助。一个很好的例子是插入原型的集合表单类型,它可以用来通过JavaScript来生成所需的同一类型的相同类型的字段。 – Bogdan 2012-07-27 13:05:05
@Yehonatan你不在那里;框架**非常有用,但不是每个人都是他们的直接专家,或者可以包含Web开发的多个方面。框架加快了开发速度,有助于提高安全性并使编写代码的人员更容易(大部分情况下)。 – Matt 2012-07-27 13:24:55