Php jQuery ajax调用后将SQL数据返回JavaScript
我对ajax(通过jQuery)和JavaScript相当陌生。我希望定期(异步)执行一个php脚本,以获取一些SQL数据。但是,我将在JavaScript图中显示这些数据,因此我需要它来返回到我的JavaScript中 我尝试在JavaScript中嵌入一个php脚本,将SQL数据推送到一个数组中,然后通过Php jQuery ajax调用后将SQL数据返回JavaScript,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我对ajax(通过jQuery)和JavaScript相当陌生。我希望定期(异步)执行一个php脚本,以获取一些SQL数据。但是,我将在JavaScript图中显示这些数据,因此我需要它来返回到我的JavaScript中 我尝试在JavaScript中嵌入一个php脚本,将SQL数据推送到一个数组中,然后通过.ajax调用简单地获取页面本身,但这不起作用(尽管我可以在页面源代码中看到JavaScript已更改,但图形没有响应更改): php(不工作): $(函数(){ 函数fetchData()
.ajax
调用简单地获取页面本身,但这不起作用(尽管我可以在页面源代码中看到JavaScript已更改,但图形没有响应更改):
php(不工作):
$(函数(){
函数fetchData(){
$.ajax('ajax.php');
$.plot($(“#占位符”),[d1]);
setTimeout(fetchData,5000);
}
setTimeout(fetchData,500);
});
推荐的方法是什么?嗨,我认为你不能直接这么做。。。。如果您想在PHP和JS之间来回传递数据,您需要使用xml http请求。。你可以在这里找到一个非常好的教程,对你有很大帮助。。。。。。 希望这有助于。。。当我开始的时候,它确实帮助了我。。。。我试着做与您尝试做的相同的事情,然后我知道我试图混合服务器端和客户端脚本 你在这里所做的是 1将参数列表传递给php 2 php进行一些处理(在您的查询数据库中)并回显所需的输出变量 3返回到JS的 如果您正在寻找直接代码。。。好了。。。。我上面提到的网站不是我的代码。。。我真的建议你去那个网站。。。你会在短时间内学到很多。。。。希望有帮助
<html>
<body>
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code
function ajaxFunction(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.myForm.time.value = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "serverTime.php", true);
ajaxRequest.send(null);
}
//-->
</script>
<form name='myForm'>
Name: <input type='text' onChange="ajaxFunction();" name='username' /> <br />
Time: <input type='text' name='time' />
</form>
</body>
</html>
名称:
时间:
serverTime.php
<?php
echo date("H:i:s");
?>
我想你把概念搞混了。PHP仅在Web服务器上运行。Javascript在客户端(即web浏览器)上运行 如果您在
ajax.php
中创建了一个扩展名为.php
的页面,它将从web服务器提供一次服务,并且
块中包含的所有内容都将由服务器解析-它不是动态的
结果页面包含来自php脚本的解析值,但不包含脚本本身
Javascript在用户计算机上运行,因此处理用户交互和网页上的事件。当需要从服务器获取数据时,可以使用Javascript调用服务器脚本(在本例中为php)。这就是AJAX的基本含义。但是,通常javascript包含在以.js
结尾的文件中,这些文件通常不会被Web服务器解析,除非javascript确实包含在页面中,但这并不是现在真正的做法
我不知道通过将javascript与php混合,您打算做什么。这不是AJAX
我建议您使用类似JSON的东西。这个粗略的php脚本首先将结果编译成JSON,然后是javascript ajax调用。您需要包含JQUERY库,并将整个php脚本保存为一个名为getdata.php
的单独文件
<?php
// You'll have to do all the database select stuff here
while ($Row = mysql_fetch_array($params))
{
$jsondata[]= array('jsobjectfield1'=>$Row["dbtablefield1"],
'jsobjectfield2'=>$Row["dbtablefield2"], 'jsobjectfield3'=>$Row["dbtablefield3"], 'jsobjectfield4'=>$Row["dbtablefield4"]);
};
echo("{\"TableData\": ".json_encode($jsondata)."};");
?>
不清楚您到底在做什么,如果您想使用ajax更新占位符的内容,那么该行应该位于ajax调用的success:method中。我建议您阅读一下jquery.com上的ajax文档。您将服务器端php与客户端脚本混合在一起。AJAX.PHP是可以运行的——在你的脚本中间PHP只有在你第一次加载PGEI之前才被执行。我已经忘记了这个网站,技术解释得很好,当然现在像JQuery这样的东西会让生活变得更简单,但前提是你理解这个网站所描述的基本概念。谢谢,这很有效。但我认为我所做的应该会产生类似的结果,因为我异步更新了页面本身(ajax.php),因此服务器应该重新生成php页面,从而用新数据填充它。这也是我在查看页面源代码时看到的。好吧,但是没有工作,所以现在不重要了。
<?php
// You'll have to do all the database select stuff here
while ($Row = mysql_fetch_array($params))
{
$jsondata[]= array('jsobjectfield1'=>$Row["dbtablefield1"],
'jsobjectfield2'=>$Row["dbtablefield2"], 'jsobjectfield3'=>$Row["dbtablefield3"], 'jsobjectfield4'=>$Row["dbtablefield4"]);
};
echo("{\"TableData\": ".json_encode($jsondata)."};");
?>
$.ajax({
url: 'getdata.php',
type: "POST",
data: entereddata,
dataType: "json",
timeout: (7000),
//wait 7 seconds
error: function(data)
{
}, //end of ERROR handling
success: function(data)
{
// you'll find the data returned here:
data.jsobjectfield1
}; // end of SUCCESS handling
}); // end AJAXcall