Php jQuery ajax调用后将SQL数据返回JavaScript

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(通过jQuery)和JavaScript相当陌生。我希望定期(异步)执行一个php脚本,以获取一些SQL数据。但是,我将在JavaScript图中显示这些数据,因此我需要它来返回到我的JavaScript中

我尝试在JavaScript中嵌入一个php脚本,将SQL数据推送到一个数组中,然后通过
.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