2012-12-29 47 views
-2

我越來越近了。我有一個表單想要提交給PHP文件來處理和更新MySQL數據庫,然後更新div。我可以將數據發送到我的PHP文件並看到它,但不知道如何訪問它,所以它很有用。在PHP中解析jQuery中的數據

從我的JS

var str = $("form").serialize(); 
xmlhttp.open("GET","concessions_write.php?"+str,true); 
xmlhttp.send(); 

在我的PHP文件,將其發送到我的PHP文件

concessions_write.php?btn%5B%5D=button01&itm%5B%5D=Hot+Dog&prc%5B%5D=1.00&id%5B%5D=1&btn%5B%5D=button02&itm%5B%5D=Popcorn&prc%5B%5D=1.00&id%5B%5D=3&btn%5B%5D=button03&itm%5B%5D=Combo&prc%5B%5D=3.50&id%5B%5D=2&btn%5B%5D=button04&itm%5B%5D=Nabs&prc%5B%5D=0.50&id%5B%5D=4&name=&message= 

一個

print_r($_GET); 

Array (
    [btn] => Array (
     [0] => button01 
     [1] => button02 
     [2] => button03 
     [3] => button04 
    ) 
    [itm] => Array (
     [0] => Hot Dog 
     [1] => Popcorn 
     [2] => Combo 
     [3] => Nabs 
    ) 
    [prc] => Array (
     [0] => 1.00 
     [1] => 1.00 
     [2] => 3.50 
     [3] => 0.50 
    ) 
    [id] => Array (
     [0] => 1 
     [1] => 3 
     [2] => 2 
     [3] => 4 
    ) 
    [name] => 
    [message] => 
) 

這是我需要的信息。每個條目有4個部分 - btn,itm,prcid,我目前有4個條目。只是不知道如何將它分解成可用的數組,以便我可以將數據寫回到數據庫。

看看parse_str但似乎無法得到它的工作。

想法?還有任何想法,名稱和消息可能來自哪裏?沒有這個表單元素。

+0

這個問題含糊其辭。你有你的要求,而且你知道如何從中得到你的數據,現在你想...什麼? –

+1

爲什麼要手動創建一個'XMLHttpRequest'? jQuery'$ .get()'函數可以使這個更簡單。 – Blender

+0

與OP之前的問題相關[這裏](http://stackoverflow.com/questions/13845765/getting-variable-size-form-to-javascript-and-php-ajax),[here](http:// stackoverflow .com/questions/13974462/passing-variable-sized-form)和[here](http://stackoverflow.com/questions/14045381/passing-variable-sized-form-using-jquery-to-php-file-換處理)。 – halfer

回答

1

,如果你知道數據的格式,你收集$ _GET的數組()後,你可以這樣做:

$_GET['btn']['0']; 

的名稱和meesage必須是未來的形式表單輸入名稱。

+0

謝謝。由於長度是可變的,有一種簡單的方法來獲得數組的長度? –

+0

使用'count'或'sizeof'。基本上是一樣的。 '$ length = sizeof($ _ GET ['btn']);' – smottt

0

在我看來,你只需要一個for循環:

for ($i = 0; $i < 3; $i++) { 
    $btn = $_GET['btn'][$i]; 
    $itm = $_GET['itm'][$i]; 
    $prc = $_GET['prc'][$i]; 
    $id = $_GET['id'][$i]; 

    // Sanitise and save these values here 
}