使用JSON加载时,php将数据加载到fancybox中

使用JSON加载时,php将数据加载到fancybox中,php,jquery,json,fancybox,Php,Jquery,Json,Fancybox,我有一个带有fancybox的php页面。 我有一个php页面,其中jquery显示了一个fancybox。 当显示fancybox时,我需要从数据库加载数据。 单击事件的代码: $("a#addActivitat").click(function(){ var retorn; $.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',function(data){

我有一个带有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> 

您没有正确使用
$.getJSON
。请记住,Ajax请求是异步的(Ajax毕竟意味着异步JavaScript和XML)。 因此,
retron
变量将不会用从Ajax调用获得的值填充

您应该做的是在收到数据时更新DOM(即在回调函数中)

如果您返回的JSON文档如下

{
    "value": 42
}

如果将警报放在成功处理程序中,如果数据从服务器返回,它将向数据发出警报。试着这样做:

$("a#addActivitat").click(function(){
    $.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',function(data){
         $("#idRel").val(data);
         var retorn = $.parseJSON( data );
         alert(retorn);
    });
});
我发现了错误:

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。

这可能意味着没有返回数据,可能是地址错误,或者返回的数据不是有效的json。真的很难说吗?
$("a#addActivitat").click(function(){
            $.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',
                       function(data){
                $('#idRel').val(data);
            });     
        });
echo json_decode("43");