Tsu*_*oku 1 javascript php jquery json
我开始使用jquery $ .ajax()但我无法回复我想要的...我发送这个:
$(function(){
$.ajax({
url: "graph_data.php",
type: "POST",
data: "casi=56&nada=48&nuevo=98&perfecto=100&vales=50&apenas=70&yeah=60",
dataType: "json",
error:
function (xhr, desc, exceptionobj) {
document.writeln("El error de XMLHTTPRequest dice: " + xhr.responseText);
},
success:
function (json) {
if (json.error) { alert(json.error); return; }
var output = "";
for (p in json) {
output += p + " : " + json[p] + "\n";
}
document.writeln("Results: \n\n" + output);
}
});
});
Run Code Online (Sandbox Code Playgroud)
我的PHP是:
<?php
$data = $_POST['data'];
function array2json($data){
$json = $data;
return json_encode($json);
}
?>
Run Code Online (Sandbox Code Playgroud)
当我执行这个时,我出来了:
结果:
就像我以前在php中有一个echo array2json语句,但它只是给了回复的胡言乱语...我真的不知道我做错了什么,我用谷歌搜索了大约3个小时才得到基本相同的东西.此外,我不知道如何将参数传递给$ .ajax函数中的"data:",以另一种方式从网页获取信息,有人可以帮助我吗?
编辑
我做了你的建议并打印数据现在非常感谢你=)然而,我想知道,我怎么能将数据发送到jQuery中的"data:"部分所以它从我们说用户输入,我也是正在检查php文档,它说我可以写类似的东西:
json_encode($a,JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP)
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我得到一个错误,说json_encode接受1参数,我给2 ...任何想法为什么?我正在使用php 5.2
第一:您传递给PHP脚本的数据将在$_POST,而不是在$_POST['data'].
下一步:你需要array2json用一些数据实际调用函数......这是完整的代码示例吗?
另外,我不确定array2json应该做什么...为什么不json_encode直接打电话?
对于您的示例,您可以简单地使您的PHP文件看起来像这样:
print json_encode($_POST);
Run Code Online (Sandbox Code Playgroud)
最后,你应该得到一个像Firebug这样的工具来轻松调试你的AJAX调用.
编辑:
为了从用户发送数据,您所要做的就是在页面的任何位置都有一个表单,然后捕获它的提交事件并序列化数据,或者只是获取单个输入字段的值.然后,您可以使用它构建数据查询,作为字符串或对象.还有一个非常流行的jQuery 表单插件,使它更容易.
您收到错误的原因是因为在json_encodePHP 5.3.0之前未添加第二个参数.因此,如果您有任何早于此的内容,则无法使用.