【发布时间】:2011-09-29 12:28:42
【问题描述】:
我正在尝试显示多个复选框,然后将选定的复选框作为 HTTP GET(即作为 URL 字符串中的参数)提交到同一个脚本:
这是我的简化测试代码 - test.php:
<html>
<head>
<style type="text/css" title="currentStyle">
@import "http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css";
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() {
$('#name').dialog({ autoOpen: false, modal: true });
});
</script>
</head>
<body>
<form>
<p><input type="button" value="Select name"
onclick="$('#name').dialog('open');"></p>
<div id="name" title="name">
<?php
$NAMES = array(
'project one',
'project two',
'project three',
);
foreach ($NAMES as $name) {
printf('<p><label><input type="checkbox" name="name" value="%s">%s</label></p>',
urlencode($name),
htmlspecialchars(substr($name, 0, 120))
);
}
?>
</div>
<input type="submit">
</form>
</body>
</html>
但由于某种原因,当我选择前 2 个复选框时,单击“提交”按钮(对于屏幕截图中的非英文名称,抱歉),然后脚本 http://myserver/test.php? 正在已提交而不是 http://myserver/test.php?name=project+one&name=project+two 如我所料。
如果我摆脱所有 JQuery UI 的东西,那么它就可以工作。
我做错了什么? (除了使用 name="name" 这是因为这是一个数据库表列名,而且似乎不是这个问题的原因)
更新:
在我的真实程序(不是上面的测试用例)中,我实际上有 几个这样的对话框,并且想在每个对话框中设置一些设置,只有在点击之后提交按钮。所以提交按钮必须在对话框之外。
谢谢!
【问题讨论】:
标签: php jquery jquery-ui checkbox jquery-ui-dialog