2012-04-29 124 views
0

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

回答

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。

0

。请记住,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 
} 
0

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

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

谢谢但数据的响应不明确 – 2012-04-29 02:15:33

+0

这可能意味着没有数据返回,可能是地址错误,或返回的数据是无效的JSON。很难说真的吗? – adeneo 2012-04-29 08:59:36

+0

我发现错误,感谢您的帮助 – 2012-04-29 20:25:29