2013-05-10 57 views
1

最簡單的問題是我在客戶端使用jQuery來操縱HTML中的一些列表項。我將這些列表項和它們被用戶留在數組中的順序存儲起來,並試圖將該數組傳遞給PHP。 我不知道最好的辦法是做到這一點,我試過使用JSON,但它沒有爲我工作,這可能是語法或一些其他問題。如果有更簡單的方法來做到這一點,我很樂意做到這一點。在PHP中訪問JavaScript數據的HTML列表

我只是想達到一個場景,我可以在PHP中回顯數組的內容。即,如果用戶在第二位置具有數字12,則能夠對數字12回顯值[2]。

我的HTML + Javascript在這裏。這是一個簡單的jQuery瓦片列表,我想訪問用戶訂購列表的方式。 http://jsbin.com/igewiv/2/edit

對於JSON PHP段,我沒有從echo返回任何東西,如果成功,我很樂意以另一種方式做到這一點。非常感謝。

的Javascript:

$(document).ready(function(){ 

    $("#sortable").on("sortupdate", function() { 
     var dataArr = []; 
     $("#sortable li").each(function(idx, elem) { 
      dataArr[idx] = $(elem).html(); 
     }); 
     var dataStr = '{"order":' + JSON.stringify(dataArr) + '}'; 

     $.ajax({ 
      url: "fiddle.php", 
      type: "POST", 
      data: dataStr 
     }); 
     alert(dataStr); 
    }); 
}); 

PHP:

<?php 
$value = json_decode($_POST["dataStr"]); 
$order_0=$value['order'][0]; 
echo $order_0; 
?> 
+0

能否請您編輯的代碼到你的問題? – andrewsi 2013-05-10 18:41:56

+0

你可以在這裏發佈你的php代碼段嗎 – 2013-05-10 18:43:37

+0

不要這樣做''{「order」:'+ JSON.stringify(dataArr)+'}''傳遞數據只是傳遞對象爲'var obj = {「order 「:dataArr}' – scrappedcola 2013-05-10 18:45:42

回答

3

通這樣的:

$.ajax({ 
    url: "fiddle.php", 
    type: "POST", 
    data: { 
     orders: dataArr 
    } 
}); 

刪除你在哪裏字符串化它的行。它不需要。

在PHP端

您會收到

$_POST['orders'] 
+0

我的php代碼應該如何處理這個問題?我試過$ value = json_decode($ _ POST ['orders']); $ order_0 = $ value ['order'] [0]; echo $ order_0;這是你的意思還是別的? – user1628206 2013-05-10 21:31:45

+1

你不必解碼任何東西,只需簡單地使用$ _POST ['orders']即可。嘗試var_dump($ _ POST ['orders']);你會看到結果。您可以隨意顯示它。 – 2013-05-10 21:35:16

+0

當使用var_dump時,我得到一個NULL返回,在我如何發送數據或接收數據時是否有錯誤?已更改的代碼 - > http://jsfiddle.net/dHVHQ/ – user1628206 2013-05-10 21:47:54