当用JSON加载时,php将数据加载到fancybox中
问题描述:
我有一个带有fancybox的php页面。 我有一个PHP页面,与jQuery显示fancybox。 当fancybox显示时,我需要从数据库加载数据。 代码中的点击事件:当用JSON加载时,php将数据加载到fancybox中
$("a#addActivitat").click(function(){
var retorn;
$.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',function(data){
retorn = data;
});
alert(retorn);
});
警报未定义
的fancybox的代码:
<div id="agendaAddAct">
<form method="post" action="" target="workFrame" id="actionform">
<p>
<input type="text" name="idRel" id="idRel"/>
</p>
<input type="button" value="Afegir activitat" class="btnsubmit" id="afegirActivitat"/>
</form>
</div>
我需要的PHP调用的返回值在idRel输入被加载。 那就是所谓的与JSON的agendaLoadData的代码:您没有正确使用$.getJSON
$var = new facanabbdd();
echo json_encode($var->getMaxValueRel());
答
我发现了错误:
PHP页面的代码:
$("a#addActivitat").click(function(){
$.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',
function(data){
$('#idRel').val(data);
});
});
和代码agendaLoadData的
echo json_decode("43");
的错误是,我打电话函数json_encode和我需要调用函数json_decode。
答
。请记住,Ajax请求是异步的(Ajax毕竟意味着异步JavaScript和XML)。 因此,您的retorn
变量将不会被从Ajax调用中获得的值填充。
你应该做的,而不是为更新DOM当您收到(在回调函数即)数据
$("a#addActivitat").click(function(){
$.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct', function(data){
$('#idRel').val(data.value);
});
});
前提是你的返回的JSON文件就像
{
"value": 42
}
答
如果你把您的警报在成功处理程序中,如果数据是从服务器返回的,它将提醒数据。试着这样说:
$("a#addActivitat").click(function(){
$.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',function(data){
$("#idRel").val(data);
var retorn = $.parseJSON(data);
alert(retorn);
});
});
谢谢但数据的响应不明确 – 2012-04-29 02:15:33
这可能意味着没有数据返回,可能是地址错误,或返回的数据是无效的JSON。很难说真的吗? – adeneo 2012-04-29 08:59:36
我发现错误,感谢您的帮助 – 2012-04-29 20:25:29