我有一个带有fancybox的php页面。 我在php中有一个页面,jquery显示了一个fancybox。 当显示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的代码:
$var = new facanabbdd();
echo json_encode($var->getMaxValueRel());
答案 0 :(得分:0)
您没有正确使用$.getJSON
。请记住,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
}
答案 1 :(得分:0)
如果您将警报放在成功处理程序中,它将提醒数据,如果从服务器返回数据。试试这样:
$("a#addActivitat").click(function(){
$.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',function(data){
$("#idRel").val(data);
var retorn = $.parseJSON( data );
alert(retorn);
});
});
答案 2 :(得分:0)
我发现了错误:
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。