2010-05-27 59 views
0

我遇到了jQuery Ajax和PHP的问题jquery Ajax + PHP

我有我的PHP文件设置来回显我从MySQL数据库收集的数据。我已验证数据库正在返回一些内容,并且函数结尾的字符串实际上包含数据。

虽然发生了什么,但它看起来像在PHP回声发生在ajax调用之前,导致PHP数据显示在页面的顶部,而不是在正确的div下面。

我认为这可能与ajax和php调用的时间有关,但我不确定。

那么,为什么数据没有被.ajax捕获并抛入div?

感谢您的帮助!

jQuery的

$(document).ready(function() { 

$.ajax({ 
    url: "../database_functions.php", 
    type: "GET", 
    data: "cat=jw&sub=pi&sort=no",  
    cache: false, 
    success: function (html) {     
      alert("Success!"); 
      $('#product-list').html(html);   
     }  
    }); 

});

PHP

echo "Hello World"; 

回答

0

你确定你没有使用一个包含或在您的网页需要?尝试在新的空虚拟页面上执行相同的 。此外,尝试在div上添加一个厚红色边框,以确保它位于页面的正确位置,因为您的布局可能有问题。你的代码虽然看起来不错。

+0

我确实在php页面上使用include来允许db调用?这会影响事物吗? – 2010-05-27 19:12:39

+0

哦,还要尝试将Ajax调用放入按钮的单击事件中,而不是页面加载,以便查看是否是时间。 – 2010-05-27 19:13:01

+0

@Kris我的意思是包含在使用jQuery的页面上。 – 2010-05-27 19:13:47

0

如果您的JQuery代码与PHP代码位于同一文件中,那么PHP会在JQuery代码之前执行,因为JavaScript是客户端,PHP是服务器端,PHP文件首先在服务器上执行,从动态PHP呈现静态HTML,并且比客户端浏览器呈现页面JavaScript时得到执行。

.ajax只会在整个页面加载时执行一次,因为您在JavaScript中声明了您希望在文档返回事件准备就绪时执行它。

为什么.ajax不会返回值,..您提供的代码不是很清楚,问题可能出现在文件或文件ajax调用尝试运行的路径中。