在数组中发送ajax数据并接收数据

时间:2014-03-01 09:52:03

标签: php jquery ajax

我正在接受用户的输入,而不是显示数据和单击确认按钮后确认按钮,数据将发布到php文件,但数据在数组中我正在为每个循环处理该数据但是它给了我一个错误,为每个循环提供的无效参数我不知道它为什么给我一个错误。 这里是html和ajax代码。

<html>
 <head><title>my jquery</title>
 <script src="jquery-2.1.0.min.js"></script>
 </head>
<body>

 <button id="button">clickme</button>
 Id:<input type="text" id="id" >
 Name:<input type="text" id="name">
 Message:<input type="text" id="message" >
 Destination:<input type="text" id="destination" >
 <button id="confirm" name="confirm">Confirm</button>
 <div id="d">
  <table id="t">
   <tr>
    <td>ID</td>
    <td>Name</td>
    <td>Message</td>
    <td>Destination</td>
   </tr>
  </table>
 </div>

 <script type="text/javascript">
    var arr = new Array();
    $("#button").click(function(){
       var id=$("#id").val();
       var name=$("#name").val();
       var message=$("#message").val();
       var destination=$("#destination").val();

       arr.push({id:id, name:name, msg:message, dest:destination});
       for (var i=0; i<arr.length; i++){
          //alert(arr.length);
          var row="<tr><td>"+ arr[i].id +"</td><td>"+ arr[i].name +"</td><td>"+ arr[i].msg +"</td><td>"+ arr[i].dest +"</td></tr>";
       }
       $("#t").append(row);
    });

    $("#confirm").click(function(){
       $.ajax({
          type:"POST",
          url:"ajax.php",
          data:"data="+JSON.stringify(arr),
          success: function(data){
             alert(data);
          }
       });
    });
 </script>
</body>

PHP代码就在这里。 请有人告诉我为什么每个循环都不起作用。

 <?php
        if(isset($_POST['data'])){
    $yourdata = $_POST['data'];
    foreach($yourdata as $data){
        echo $data['id'];
    }
    var_dump($yourdata);
    $yourdatas = json_decode($yourdata);
    print_r($yourdata);
}
    ?>

2 个答案:

答案 0 :(得分:1)

试试这个,

 data: {'yourdata':JSON.stringify(arr)},

而不是

 data:"data="+arr,

在你的php页面中,

 <?php
    $yourdata = $_POST['yourdata'];
    $yourdatas = json_decode($yourdata);
    var_dump($yourdatas); 
 ?>

答案 1 :(得分:1)

试试这个

data:{'data':JSON.stringify(arr)}

并在你的php中

$data=json_decode(filter_input(INPUT_POST, "data"));

我希望这会对你有所帮助。