Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将结果从PHP类传递到AJAX并返回到调用脚本_Php_Ajax - Fatal编程技术网

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

将结果从PHP类传递到AJAX并返回到调用脚本,php,ajax,Php,Ajax,我有一个从数据库返回一组数据的类。该类由ajax调用,结果需要返回到index.php,以便我可以以表格格式格式化和显示结果 <div id="questionButton"> <form method="POST" name="form_questions" action=""> <TEXTAREA NAME="saveqa" id="saveqa"></TEXTAREA> <BUTTON class="b

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

<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>
问题:我无法通过ajax返回结果并返回php变量。 如果您能提供任何帮助,我们将不胜感激

<php
class Questions 
{  public function displayQuestions()
   {   
     return $this->questionArray;   
   } // contains set of data from db
}
?>
<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>
添加

<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>
data:$(“表单”).serialize(),
U需要序列化表单

<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>

<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>

问
$(文档).ready(函数(){
$('btn_save')。在('click',function(){
$.ajax({
类型:“POST”,
cache:false,
url:“testData.php”,
数据:$(“表单”).serialize(),
数据类型:“json”,
成功:功能(信息){
$('#questiondev').html(信息[0]);
控制台日志(“响应:+info”);
}
});
}); 
$('btn_save')。触发(“单击”);
});                  

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

<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>
尝试此操作-设置$questionArray后:

<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>
 $encodedJSON = json_encode($questionArray);
 echo $encodedJSON;

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

<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>

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

u没有将数据设置放回AJAX,您无法将AJAX返回放回PHP变量。PHP是服务器端,因为页面已经呈现,所以不能更新其任何服务器端代码。标记的第3行永远不会起作用。使用AJAX所能做的就是更新一个javascript变量,并将其传递到HTML/DOM中。为什么不在php文件中进行格式化,回显它,然后使用AJAX回调函数更新div?在返回响应之前,通过php操作该数组会容易得多。您好,谢谢您的帮助,但我仍然有问题。由于某种原因,脚本似乎处于循环中。php本身就可以工作,但与此同时,数据并没有通过它。
<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>