2012-04-17 29 views
0

我編碼一種形式,現在使用jQuery。員額和負責處理該文件具有代碼:開口柱陣列爲多個變量

print_r($_POST); 

它返回以下動態輸出:

Array ([data] => capacity=50-1000+people&bookingdate=17%2F04%2F2012&grade=1+star) 

我想這個數組分成三個變量即能力預訂日期,但真的不知道 如何。任何想法如何?我試過使用echo $ _POST [「capacity」];但它不起作用。

在此先感謝!

編輯

這是jQuery的我使用:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#postData").click(function() { 
     $("#last-step").hide(600); 


     $.post('resources/process2.php', { data: $("#task5_booking").serialize() }, function(data) { 
      $("#result").html(data); 
     }); 


     return false; 
    }); 
}); 
</script> 

這正與以下形式:

http://jsfiddle.net/xSkgH/93/

+2

看起來你是雙重編碼數據的URL。雖然很容易從字面上回答你的問題,但真正的問題似乎在於你如何從jQuery端發佈數據。 – deceze 2012-04-17 11:37:41

+0

嘗試爆炸到您的陣列 – 2012-04-17 11:37:48

+0

我想這將是更好的編碼您的數據到js js中,然後在服務器端解碼 – k102 2012-04-17 11:38:57

回答

3

我想你應該改變這一行:

$.post('resources/process2.php', { data: $("#task5_booking").serialize() }, function(data) { 

$.post('resources/process2.php', $("#task5_booking").serialize(), function(data) { 

請注意,我將第二個參數從對象文字更改爲(url編碼)字符串。這將您的表單中的每個變量作爲一個單獨的變量進行發佈(就像它是直接發佈一樣)。在服務器端,每個變量應在$_POST陣列內單獨提供。

1

parse_str()

一去

類似於:

parse_str($_POST['data'] , $output); 

$capacity = $output['capacity']; 
$bookingdate = $output['bookingdate']; 
$grade = $output['grade']; 
1

您必須爲此使用爆炸。

$data = array(); // A array to store the extracted value 
$temp = explode("&", $data); // First of all explode by "&" to get the each piece 
foreach($temp as $tval) { 
    $t = explode('=', $tval); // Next explode by "=" to get the index and value 
    $data[$t[0]] = $t[1]; //Add them to the array 
} 

另一種方法是使用parse_str()

$data = array(); 
parse_str($_POST['data'], $data); 

這一切後的值將被映射到$data