0

我有一个带有fancybox 的php 页面。我在 php 中有一个页面,其中 jquery 显示了一个fancybox。当显示幻想框时,我需要从数据库加载数据。点击事件代码:

$("a#addActivitat").click(function(){
            var retorn;
            $.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',function(data){
                retorn = data;
            });
            alert(retorn);  
        });

警报未定义

花式盒子的代码:

<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 调用的议程加载数据的代码:

$var = new facanabbdd();
echo json_encode($var->getMaxValueRel());
4

3 回答 3

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
}
于 2012-04-29T01:57:10.367 回答
0

如果您将警报放在成功处理程序中,如果数据从您的服务器返回,它将提醒数据。试试这样:

$("a#addActivitat").click(function(){
    $.getJSON('aplicacio/agendaLoadData.php?action=loadIdAct',function(data){
         $("#idRel").val(data);
         var retorn = $.parseJSON( data );
         alert(retorn);
    });
});
于 2012-04-29T01:57:13.787 回答
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。

于 2012-04-29T16:05:22.967 回答