我知道此问题之前已经以多种方式提出过。我很难将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页面吗?
答案 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);