2012-04-29 121 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