2013-07-26 45 views
0

我試圖通過J Query傳遞多個值並在div中顯示。下面的代碼適用於單個值。通過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方法的表單,但是選擇了name =「Status []」,它仍然可以工作。我想使它與JavaScript的工作。有任何想法嗎?謝謝。

+1

提示:'reportform.Status.value' - 有一種方法使用jQuery做到這一點,這可能在這裏工作 – Izkata

回答

0

如果您需要從選擇框中傳遞多個值,那麼您需要使用括號來設置名稱以將其定義爲數組,因此您應該像前面提到的那樣使用「Status []」但由於元素的名稱已更改,因此檢索get1()函數中的值的行將不再起作用。我注意到您是通過郵寄您所有的輸入和你正在使用jQuery,所以你不妨這樣做:

function get1() { 
    $.post('viewexisting.php', 
      $('form[name="reportform"]').serialize(), 
      function (output) { 
       $('#info').html(output).show(); 
      }); 
} 
+0

我不確定如何在下一頁檢索它。我正在使用, $ Status = addslashes($ _ POST ['Status']); $ Date1 = addslashes($ _ POST ['Date1']); $ Date2 = addslashes($ _ POST ['Date2']); 並試過, $ Status = unserialize($ _ POST ['form']); $ Status =反序列化($ _ POST ['reportForm']); Bu既沒有工作...... – James

+0

你應該可以正常訪問它們,例如:$ _POST ['Status'],我更新了我的答案,因爲我意識到我在表單選擇器中有一個大寫字母「F」,而在你的標記中它全是小寫,確保它在你的代碼中是一致的 –

+0

這樣做!需要$ Status = implode(「,」,$ _POST ['Status']);在下一頁,謝謝! – James

1

當您使用[]作爲您的帖子名稱時,它將成爲一個數組。你需要迭代數組...在PHP中:foreach($array as $item);在jQuery中,您可以使用$.each(array, function(key, value) { })

相關問題