我有一个从数据库中返回一组数据的类。该类由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>
答案 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之前对其进行格式化:)