2013-05-10 56 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