我有以下代码:
$.post("docsel.php", {id : id}, function(data) {
$('input#titre').val(data.titre);
$('input#content').val(data.content);
});docsel.php返回一个带有titre和content及其值的JSON编码数组。我检查了返回的数据是正确的。
现在我想用结果来修改输入字段,但是我的代码不能工作。我做错了什么?
编辑
以下是数据(我使用了auteur而不满足于简化):
"[{"titre":"Dipt\u00e9rosodomanie et t\u00e9trapilotomie radiaire, pourquoi ?","auteur":"Alex"}]"我对代码做了如下修改:
$.post("docsel.php", {id : id}, showResult(data));
});
});
function showResult(data)
{
var obj = JSON.parse(data);
var titre = obj.titre[0];
$('#titre').val(titre);但它不起作用,我的意思是输入字段“效价”没有修改。请注意,我是JQuery / Php的绝对初学者。
发布于 2012-02-20 17:19:33
$.post("docsel.php", {id : id}, function(data) {
$('input#titre').val(data.titre);
$('input#content').val(data.content);
}, "json");我相信您确实需要指定何时需要将返回的数据解析为JSON。您可以测试通过console.log(data)返回的数据,如果它输出一个字符串而不是一个对象,那么它还没有被解析。
发布于 2012-02-20 21:19:16
$.post("docsel.php", {id : id}, showResult(data));这将运行showResult函数,然后使用其返回值(undefined)作为回调。
它应该是:
$.post("docsel.php", {id : id}, function(data){
showResult(data)
});或者,更好的是:
$.post("docsel.php", {id : id}, showResult);您不需要自己使用JSON.parse。只需将'json'传递给$.post,它就会为您做到这一点。
$.post("docsel.php", {id : id}, showResult, 'json');
function showResult(data){
var titre = data[0].titre; // Data is an array of objects
$('#titre').val(titre);
}https://stackoverflow.com/questions/9365343
复制相似问题