通过J Query传递多个值并在div中显示它们

时间:2013-07-26 21:35:10

标签: php javascript jquery

我正在尝试通过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工作。有任何想法吗?感谢。

2 个答案:

答案 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();
           });
}