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 の後ろに置こうとすると、ボタンが機能しなくなります。select name="Status[]" は、別のページへの post メソッドを含むフォームを使用している場合に機能します。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()関数で値を取得する行は要素の名前が変更されたため、機能しなくなりました。すべての入力を投稿で送信しており、jQuery を使用していることに気付きました。

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