2

我有一个从数据库返回一组数据的类。该类由 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>
4

3 回答 3

0

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

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

 $encodedJSON = json_encode($questionArray);
 echo $encodedJSON;
于 2013-05-28T04:15:38.447 回答
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>
于 2013-05-19T13:52:02.833 回答
0

你不能像这样将 AJAX 请求的结果插入 PHP 变量。当您运行 php 页面时,Web 服务器会渲染它,然后 javascript 由浏览器运行,这意味着您无法从 javascript 编辑 PHP 变量,因为 PHP 运行在服务器上,而 JS 运行在客户端上。

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

于 2014-06-01T08:54:16.097 回答