【发布时间】:2013-05-17 05:21:09
【问题描述】:
我对 JSON 了解不多,并且尽管我尝试了很多次,但始终无法使用 JSON 将某些内容返回到 ajax 并使用 jquery 显示它。
我想要做的是,使用 JSON 对象发送数据加载用户配置文件时到 ajax。
[更新] php 代码:
<?php include(dirname(__FILE__). '/../script/config.php');
session_start();
$id = $_POST['u_search'];
$email = $_SESSION['Email'];
foreach($pdo->query("SELECT * FROM Users WHERE ID='$id'") as $row) {
//$firstname = $row['FirstName'];
//$lastname = $row['LastName'];
$pic = $row['Pic'];
$id = $row['ID'];
$u_email = $row['Email'];
}
$firstname = "Jason";
$lastname = "Born";
$data = array("success"=> true,"inpt"=>"<p>Hello there! I am " . $firstname . " " . $lastname . "</p>");
echo json_encode($data);
header("Content-Type: application/json");)
?>
<?php $pdo = null; ?>
更新的 Ajax:
function op_prof(obj) {
var value = obj.id;
var dataString = "{'u_search':'"+value+"'}";
$("#co_profile").show();
$(".searchbox").val('');
$("#usr_suggest").hide();
$.ajax({
type: "POST",
url: '/script/profile.php',
dataType: 'json',
data: dataString,
cache: false,
success: function(data) {
alert(console.log(data));
alert(data);
$("#co_profile").html(data.inpt).show();
location.hash = 'profile' + 'id=' + dataString;
}
});
};
编辑:当我使用 dataType: 'json' 时,success 中没有任何内容运行,但是当我删除它时,它们运行..
编辑:当我使用datatype: 'json' 而不是dataType: 'json' 时,success 中的代码运行。我用 alert(console.log(data)); ,它说“未定义”
编辑:我正在使用//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js
【问题讨论】:
-
首先尝试
console.log(data)insuccess并在您的问题中打印日志。 -
我可以根据您的喜好在我的示例中正确加载 json 数据。如果你愿意,我可以分享。但首先显示你的 console.log(data)。
-
success中的任何内容都没有运行 .. 那是有线的 .. 我已成功输入console.log(data); -
但是当我删除
dataType: 'json'时,success中的所有内容都会运行 -
如果您运行 profile.php 文件,它会显示任何错误吗?因为我怀疑在您的第一个条件下使用
'$id'和'$pic'。