.load()jquery php一般问题

时间:2011-01-09 19:01:45

标签: php jquery

这是一个普遍的问题,我有两个页面,一个主页和一个背景函数一个(file.php)

主页加载file.php传递变量:

$(document).ready(function() { 
    var page     = $('#page').attr('value');  
    var user     = $('#user').attr('value');
    $('#DIV').load('file.php?user=' + user + '&page=' + page);
});  

File.php查询数据库,将变量插入更多jquery的东西..

回声结果......

主页面上的结果是所需的结果。如果我修改了file.php中的变量(并通过浏览器加载),那么脚本是完全功能和交互式的。

我的问题如下:

主页面的file.php部分没有交互性,即当我点击它时没有任何反应,但是2工作正常,一起传递变量,但结果是静态的。

我的问题是,这是由于.load()函数吗?我应该使用$ .ajax()类型GET ......

提前致谢。

2 个答案:

答案 0 :(得分:0)

#DIV是指:

<div id="DIV"></div>

也许你应该试试这个:

$(document).ready(function() { 
  var page     = $('#page').attr('value');  
  var user     = $('#user').attr('value');

  // see the DIV below with the ID = "myId"
  $("#myId").load("file.php?user=' + user + '&page=' + page", function(response, status, xhr) {
    if (status == "error") {
      var msg = "Sorry but there was an error: ";
      $("#error").html(msg + xhr.status + " " + xhr.statusText);
    }
  });

});  


  <!-- empty containers with ID attributes -->
  <div id="myId"></div>
  <div id="error"></div>

如果返回的数据中有错误,这也会告诉您错误是什么。另外,你的调试器会告诉你什么?

答案 1 :(得分:0)

听起来你有一些附加到DOM的jQuery行为没有应用到新内容。这是因为在DOM准备就绪后(即,在加载事件触发后)加载新内容。

这可以通过使用.live jQuery函数将事件附加到将应用于所有元素的选择器来解决,无论它们何时被添加。例如,而不是:

$('#button').click(function() { alert('hi'); });

使用:

$('#button').live('click', function() { alert('hi'); });