2012-04-29 2 views
0

У меня есть страница php с fancybox. У меня есть страница в php, которая с jquery показала fancybox. Когда отображается fancybox, мне нужно загрузить данные из базы данных. Код события щелчка:php загружает данные в fancybox при загрузке с помощью JSON

$("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> 

мне нужно, что возвращенное значение РНР вызова загружается на входе idRel. И код agendaLoadData, который вызывается с помощью JSON:

$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

Вы не используете $.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 
} 
0

Если вы положили ваше предупреждение внутри обработчика успеха, оно будет предупреждать данные, если данные будут возвращены с вашего сервера. Попробуйте так:

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

спасибо, но ответ данных не определен –

+0

Это, вероятно, означает, что нет данных, может быть адрес неверен или что возвращаемые данные недействительны json. Трудно сказать? – adeneo

+0

Я нашел ошибку, спасибо за помощь –

Смежные вопросы