2009-08-02 52 views
2

我有一個PHP數組:通行證PHP陣列

$toField = explode(",", $ids); //Which looks something like '24,25,26,29' 

我想通過通過jQuery AJAX這個數組,這一點:

<form id="myForm"> 
    <input type="hidden" value="'.$toField.'"> 
    <input type="submit" id="sendMessage" class="faceboxSubmit" name="ok" value="Send Reply"/> 
</form> 

而且這裏是我的jQuery:

$("#sendMessage").click(function(event){ 
    event.preventDefault(); 
    var senderID = <?php echo $usrID; ?>; 
    var receiverID = $("#toField").val(); 
    $.ajax( 
{ 
    type: "POST", 
    url: "replyMessage.php", 
    data: "senderID=" + senderID + "&subject=" + subject + "&message=" + message + "&receiverID=" + receiverID + "&threadID=" + thread_id, 
    beforeSend: function() { 
     $("#sendingMessage").show(); 
     }, 
      success: function() { 
     alert("Success"); 
     } 

     });  
    }); 

如何傳遞數組,以便使用「replyMessage.php」頁面,我可以從數組中獲取每個ID,執行如下操作:

<?php 

    foreach ($_POST['receiverID'] as $receiverID) 
    { 
    mysql_query //etc... 
    } 

任何幫助,非常感謝!

回答

2

首先,你可能想使用implode,而不是爆炸,來構建你的$toField變量;-)

$ids = array(24, 25, 26, 29); 
$toField = implode(',', $ids); 
var_dump($toField); 

這將使你

string '24,25,26,29' (length=11) 

然後你注入這個表單;這樣的事情可能會做:

<input type="hidden" value="<?php echo $toField; ?>"> 

(再檢查一下你的表格的HTML源代碼,以確保;-))


然後,在從接收數據的PHP腳本形成時,它被提交,你會使用explode提取數據作爲一個數組,從字符串:

foreach (explode(',', $_POST['receiverID']) as $receiverID) { 
    var_dump($receiverID); 
} 

這將讓你:

string '24' (length=2) 
string '25' (length=2) 
string '26' (length=2) 
string '29' (length=2) 

而且,現在,你可以使用放入系統IDS ...

+0

正是我在找的 - 謝謝。 – Dodinas 2009-08-02 19:39:09

0

很少有東西怎麼回事我理清: -

  • 你錯過了ID 'toField' 上您的toField輸入元素。

  • 您應該在$ id變量上使用implode()而不是使其爆炸。

  • 在其他方面你應該在recieverId字符串上調用explode()。

3
<form id='myform'> 
<input type='hidden' name='to[]' value='1' /> 
<input type='hidden' name='to[]' value='2' /> 

.. etc .. 
.. rest of you're form .. 
</form> 

jQuery的更改數據:..部分:

data: $('#myform').serialize() 

然後在你的PHP:

foreach ($_POST [ 'to' ] as $num) 
{ 
// do something with $num; 
} 

像這樣的選擇?

0

只需在每個循環中使用一些特殊字符(例如| & | 。 如果它是多維的,則使用兩個循環中的每個字符並對其進行回顯。 並通過使用一些分隔符函數將其更改回到java腳本中的數組