如何通过JSON对象在ajax页面中捕获数组

时间:2013-12-10 10:08:39

标签: javascript php ajax json

我通过ajax.i发送一个数组从一个页面到另一个页面用于此目的的JSON对象。我能够发送但我无法在ajax页面中捕获。请帮我如何捕获数组值。 的javascript:

var jsonString = JSON.stringify(dataString);
   $.ajax({
        type: "POST",
        url: "ajaxpage.php",
        data: {data : jsonString}, 
        cache: false,

        success: function(response){
            alert("ok");
           $('#test').html(response);
        }
    });

PHP页面:

$data = json_decode(stripslashes($_POST['data']));

  // here i would like use foreach:

  foreach($data as $d){
     echo $d;
  }

请在这方面帮助我。 我被困在这里

2 个答案:

答案 0 :(得分:1)

如果要将JSON解码为关联数组,则应在json_decode中指定:

替换

$data = json_decode(stripslashes($_POST['data']));

使用

$data = json_decode(stripslashes($_POST['data']), true);

有关详细信息,请参阅json_decode reference


此外,dataString可能已经是JSON字符串吗?

答案 1 :(得分:0)

我认为这就是你想要的,我已经尝试过并且它有效 在你的PHP:

<?php
$data = ($_POST['data']);

foreach($data as $d){
    echo stripslashes($d);
}
?>

在你的jsvascript / jquery中:

<script>
$(document).ready(function(){
    $('a').on('click',function(){
    var dataString = {
        'id':'1',
        'name':'peter parker',
        'age':'unknown',
        'role':'spiderman'
    }
    $.ajax({
         url: "<?php echo $this->webroot;?>test_1.php",
         data: {'data':dataString}, 
         type: "POST",
         cache: false,
         success: function(response){
         alert("ok");
         $('#test').html(response);
        }
     });
   })
})
</script>
你的HTML中的

<a href="javascript:void(0);">Click Me</a>
<div id="test"></div>