0

我试图通过 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>

但是,当我尝试在选择名称和脚本中将 [] 放在 Status 后面时,按钮停止工作。如果我使用带有 post 方法的表单到另一个页面,select name="Status[]" 确实有效。我想让它与javascript一起工作。有任何想法吗?谢谢。

4

2 回答 2

1

当您[]用作帖子名称时,它会变成一个数组。您需要在 PHP 中迭代数组foreach($array as $item)...... 在 jQuery 中,您可以使用$.each(array, function(key, value) { })

于 2013-07-26T22:15:51.793 回答
0

如果您需要从选择框中传递多个值,那么您需要设置一个带括号的名称以将其定义为一个数组,因此您应该使用“Status []”作为您提到的但是在您的get1()函数中检索值的行将由于元素名称已更改,因此不再起作用。我注意到您正在通过 post 发送所有输入,并且您正在使用 jQuery,因此您不妨这样做:

function get1() {
    $.post('viewexisting.php', 
           $('form[name="reportform"]').serialize(), 
           function (output) {
               $('#info').html(output).show();
           });
}
于 2013-07-26T22:29:14.860 回答