JQuery Ajax ile PHP Array geçmek

4 Cevap php

Ben bir php dizi var:

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

Ben bu ile, jQuery AJAX ile bu dizi geçmek istiyorum:

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

Ve burada benim jQuery bulunuyor:

$("#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" sayfası ile, ben böyle bir şey yapmak için, Array her kimliği alabilir böylece nasıl, dizi iletebilirsiniz:

    <?php 

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

Herhangi bir yardım büyük beğeni topluyor!

4 Cevap

İlk olarak, muhtemelen implode , and not explode, to construct your $toField değişkeni kullanmak istiyorum ;-)

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

Sana verecek olan

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

Daha sonra formda bu enjekte; Böyle bir şey muhtemelen yapacağını:

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

(Chech the HTML source of your form, to be sure ;-) )


Then, on the PHP script that receives the data from the form when it's been submitted, you'd use explode to extract the data as an array, from the string :

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

Seni alacak olan:

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

Ve, şimdi, thoses kimlikleri kullanabilirsiniz ...

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

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

için .. part: jQuery verileri değiştirmek

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

Sonra sen PHP konum:

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

Bu bir seçenek gibi bir şey?

Eğer php kod dize almak ve değerleri döngü sonra, virgül üzerinde ayırabilirsiniz.

http://us3.php.net/split

I gidecek birkaç şey sıralamak istiyorum: -

  • Sen TOFIELD giriş elemanına id 'Paşaya' kaçırıyorsun.

  • Bunu yerine onu patlayan daha $ id değişkeni üzerinde () çöktüğünü kullanıyor olmalıdır.

  • Diğer tarafta size recieverId dize () patlayabilir çağrı olmalıdır.