使用jQuery发布PHP JSON编码数组

时间:2011-12-06 15:03:19

标签: php jquery ajax

我知道此问题之前已经以多种方式提出过。我很难将JSON编码的数组解析到我的域中的另一个页面。

我有这个PHP代码:

<?php 
    $json_results = json_encode($results);
?>

以下是$ json_results的一个例子:

  

[{“状态”:“示例状态2”,“联系人ID号”:“1”,“输入日期”:“2011-06-15”,“日期已分配”:“2011-06-15” ,“上次修改日期”:“2011-06-15”,“已故日期”:null,“与注册人1相关联”:“Mike Murdoc”,“关系1”:“父亲”,“授权1”:“1 “,”与注册人2“相关联:”Sam Murdoc“,”关系2“:”丈夫“,”授权2“:”1“,”位置“:”Zues Funeral Home“,”销售经理“:”Dan Thompson “,”“顾问”:“史蒂夫·布朗”,“注册号码”:“1”,“注册日期”:“2001-05-11”,“程序1号”:“2”,“程序1日期”:“ 2003-11-05“,”程序1名称“:”非注册人测试程序 - 优势“,”程序2编号“:” - “,”程序2日期“:” - “,”程序2名称“: “ - ”,“名字”:“Onelia”,“姓氏”:“Murdoc”,“地址1”:“家”,“地址1”:null,“城市1”:“休斯顿”,“州/省1“:”德克萨斯州“,”邮编/邮政编码1“:”77019“,”家庭电话“:” - “,”工作电话“:” - “,”手机“:” - “,”“Pager”:“ - ”,“其他电话”:“ - ”,“电子邮件”:null,“销售类型”:“预先需要”,“注1”:“这是注3。注3:T他是注3.这是注3.这是注3.这是注3.这是注3.这是注3.这是注3.这是注3.这是注3.这是注3。这是注3,这是注3,这是注3.“}]

以下是$.ajax脚本:

<script type='text/javascript' >
    $(document).ready(function(){ 
        var results = <?php   echo($json_results);?>;
        $("#xls_download_button").click(function(e) {
            e.preventDefault();
            $.ajax({
                type:  'post', 
                cache:  false,
                url:  './libs/common/test.php',
                data: results
            });                 
        });
    });
</script>

这是test.php文件:

<?php 
    echo 'Jason Data: ' . $_POST['data'];
    $results = json_decode($_POST['data']);
    // do something with results ...
?>

点击#xls_download_button后,会触发帖子事件,但帖子中没有传递数据(在firebug中查看)。

作为最终结果,我要做的唯一事情是将数组数据传递给export_to_excel.php文件(当前用test.php代替进行故障排除),export_to_excel.php创建一个excel文件,然后返回。

你能看到这里有什么问题,或者更好的方法来将这些数据传递给PHP页面吗?

3 个答案:

答案 0 :(得分:1)

那是因为您需要传递数据。

<script type='text/javascript' >
  $(document).ready(function(){ 
    var results = <?php   echo($json_results);?>;
    $("#xls_download_button").click(function(e) {
      e.preventDefault();
      $.ajax({
        type:  'post',
        data: 'data=' + results            <========
        , cache:  false
        , url:  './libs/common/test.php' 
      });                   
    });
  });
</script>

答案 1 :(得分:1)

我没有看到你给jQuery发布数据的位置

  $(document).ready(function(){ 
    var results = <?php   echo($json_results);?>;
    $("#xls_download_button").click(function(e) {
      e.preventDefault();
      $.ajax({
        type:  'post'
        , data: {'json_results':json_results}
        , cache:  false
        , url:  './libs/common/test.php' 
      });                   
    });
  });

现在在test.php中,$_POST['json_results']的预期值为JSON字符串,需要进行解码。

答案 2 :(得分:0)

$.ajax({
        type:  'post', 
       cache:  false
        , url:  'http://localhost/projectname/yourfilepath_and_name.php',
        data: "result="+results,
        success: function(resp) {
          alert(resp);
        } 

      });     
//and in php
do
print_r($_POST);