在jQuery ajax调用之后将SQL数据恢复为JavaScript
我是ajax(通过jQuery)和JavaScript的新手。 我想要的是定期(和异步)执行一个PHP脚本来获取一些SQL数据。 但是我会在JavaScript图表中显示这些数据,所以我需要它来回到我的JavaScript中。
我在JavaScript中尝试了一个嵌入式PHP脚本,将SQL数据推送到一个数组中,然后简单地使用.ajax
调用来获取页面本身,但这不起作用(即使我在页面源中看到JavaScript已被更改) ,图表没有响应变化):
ajax.php(不工作):
$(function () { function fetchData() { $.ajax('ajax.php'); query($query); foreach ($result as $row) { print "d1.push([".$row['timestamp'].",".$row['unknown']."]);"; } } catch (Exception $e) { print 'Exception : '.$e->getMessage(); } ?> $.plot($("#placeholder"), [ d1]); setTimeout(fetchData, 5000); } setTimeout(fetchData, 500); });
建议的方法是什么?
我认为你正在混淆你的概念。 PHP仅在Web服务器上运行。 Javascript在客户端(即Web浏览器)上运行
如果您在ajax.php
创建一个扩展名为.php
的页面,它将从您的Web服务器提供一次,并且它包含的所有内容( 块中的a)将由服务器解析 – 它不是动态的。
结果页面包含来自php脚本的已解析值,但不包含脚本本身。
Javascript在用户计算机上运行,因此处理网页上的用户交互和事件。 当您需要从服务器获取数据时,可以使用Javascript调用服务器脚本(在本例中为php)。 这基本上就是AJAX的意义所在。 但通常javascript包含在以.js
结尾的文件中,除非javascript实际包含在您的页面中,否则您的网络服务器不会对其进行解析,但这些日子并不是真的如何处理。
我不知道你要通过混合javascript与PHP做什么。 这不是AJAX。
我建议你使用像JSON这样的东西。 这个粗略的php脚本首先将你的结果编译成JSON,然后是javascript ajax调用。 您需要包含JQUERY库并将整个php脚本保存为名为getdata.php
的单独文件。
$Row["dbtablefield1"], 'jsobjectfield2'=>$Row["dbtablefield2"], 'jsobjectfield3'=>$Row["dbtablefield3"], 'jsobjectfield4'=>$Row["dbtablefield4"]); }; echo("{\"TableData\": ".json_encode($jsondata)."};"); ?>
使用Javascript:
$.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
我不认为你可以直接做到这一点….如果你想在PHP和JS之间来回传递数据你需要使用xml http请求..你可以找到一个非常好的教程,将在这里帮助你很多。 ….. http://www.tizag.com/ajaxTutorial/ajaxxmlhttprequest.php希望有帮助…当我开始时它确实帮助了我……我试图做同样的事情,你正在尝试做,然后我知道我试图混淆服务器和客户端脚本
你在这里做的是……
1将参数列表传递给php
2 php进行一些处理(在您的情况下是查询数据库)并回显所需的输出变量
3返回给JS
如果您正在寻找直接代码…那么你去……信誉去了我上面提到的网站,而不是我的代码…我真的建议你去那个网站…你会学到很多东西在短时间内….希望有所帮助
serverTime.php