将结果从PHP类传递到AJAX并返回到调用脚本

时间:2013-05-19 13:48:16

标签: php ajax

我有一个从数据库中返回一组数据的类。该类由ajax调用,结果需要返回index.php,以便我可以格式化并以表格格式显示结果。

问题:我无法通过ajax返回结果并返回到php变量。 我们非常感谢您提供的任何帮助。

<php
class Questions 
{  public function displayQuestions()
   {   
     return $this->questionArray;   
   } // contains set of data from db
}
?>

从类中返回数据集并将其传递给$var,以便我可以格式化数据以进行显示

index.php

<html>
<body>
<div id="questiondev" ><?php $var[] = returned by ajax ?> </div> 



<div id="questionButton">
   <form method="POST" name="form_questions" action="">
      <TEXTAREA NAME="saveqa"  id="saveqa"></TEXTAREA>
       <BUTTON class="btn_save" id ="btn_save" NAME="btn_save">Ask</BUTTON>
   </form>
</div>  
    <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>           
          $(document).ready(function() { 
          $('#btn_save').on('click', function() { 
          $.ajax({
            type: "POST",
            cache: false, 
            url: "testData.php",
            dataType: "json",
            success:function(info){
            $('#questiondev').html(info[0]);
            console.log(" reponse :"+ info);
            }
         });
        }); 

        $('#btn_save').trigger("click");
         });                  
        </script> 
</body>
</html>

3 个答案:

答案 0 :(得分:0)

添加

data:$("form").serialize(),你需要序列化表格

           

<div id="questionButton">
   <form method="POST" name="form_questions" action="">
      <TEXTAREA NAME="saveqa"  id="saveqa"></TEXTAREA>
       <BUTTON class="btn_save" id ="btn_save" NAME="btn_save">Ask</BUTTON>
   </form>
</div>  
    <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>           
          $(document).ready(function() { 
          $('#btn_save').on('click', function() { 
          $.ajax({
            type: "POST",
            cache: false, 
            url: "testData.php",
            data:$("form").serialize(),
            dataType: "json",
            success:function(info){
            $('#questiondev').html(info[0]);
            console.log(" reponse :"+ info);
            }
         });
        }); 

        $('#btn_save').trigger("click");
         });                  
        </script> 
</body>
</html>

答案 1 :(得分:0)

看起来你不是以json格式回显结果。看来如果查询成功,$ questionArray会被设置,但不会被回显。另外,你不能只回显$ questionArray - 它必须以json格式输出,以便Ajax代码接受它。

试试这个 - 设置$ questionArray之后:

 $encodedJSON = json_encode($questionArray);
 echo $encodedJSON;

答案 2 :(得分:0)

你不能像这样将AJAX请求的结果插入到PHP变量中。当你运行php页面web服务器将呈现它,然后javascript由浏览器运行,这意味着你不能从javascript编辑PHP变量,因为PHP在服务器上运行而JS在客户端上运行。

你为什么要这样做?也许它是应用程序设计中的缺陷,提供更多信息,也许我们可以帮助你更多,所以你不需要这样做。如果要格式化数据,请在将它们发送回AJAX之前对其进行格式化:)