我正在尝试通过J Query传递多个值并在div中显示。以下代码适用于单个值。
<script type="text/jscript">
function get1() {
$.post('viewexisting.php', {
Status: reportform.Status.value,
Date1: reportform.Date1.value,
Date2: reportform.Date2.value
},
function (output) {
$('#info').html(output).show();
});
}
</script>
<form name="reportform">
<?php
{
$box1 = array();
$result1 = "SELECT Status FROM CT:Status";
$rs1 = odbc_exec($conn1,$result1);
while($row = odbc_fetch_array($rs1)) {
$box1[] = $row;
}
}
$Status = '<select name="Status" multiple="multiple size="7">';
$Status .= '<option selected="selected">---< All Statuses >---</option>';
if (!empty($box1)) {
foreach ($box1 as $k => $v) {
$Status .= '<option value="'.$v['Status'].'">'.$v['Status'].'</option>';
}
}
$Status .= '</select>';
echo $Status;
?>
Date Range: <br>From <input name="Date1" id="Date1" type="text"><br>
To <input name="Date2" id="Date2" type="text">
<input type="button" value="Apply Date Range" onclick="get1();" style="width: 146px">
</form>
<div id="info"></div>
但是当我尝试在选择名称和脚本中将[]置于状态后面时,按钮停止工作。如果我使用带有post方法的表单到另一个页面,则select name =“Status []”确实有效。我想用javascript工作。有任何想法吗?感谢。
答案 0 :(得分:1)
当您使用[]
作为帖子名称时,它将成为一个数组。你需要在PHP中迭代数组:foreach($array as $item)
;在jQuery中,您可以使用$.each(array, function(key, value) { })
答案 1 :(得分:0)
如果你需要从选择框传递多个值,那么你需要设置一个带括号的名称来将其定义为一个数组,所以你应该使用你提到的“Status []”但是要检索值的行由于元素名称已更改,因此get1()
函数将不再有效。我注意到你通过帖子发送所有输入,并且你正在使用jQuery,所以你不妨这样做:
function get1() {
$.post('viewexisting.php',
$('form[name="reportform"]').serialize(),
function (output) {
$('#info').html(output).show();
});
}