jQuery .ajax加载函数,如何传入数据并检索它?

时间:2011-10-05 19:10:27

标签: jquery jquery-load

我有以下内容:

    $.ajax({
        url: "info.html?" + $(this).attr('id'),
        cache: false,
        success: function(html){
            $('#list-content').load("info.html?" + $(this).attr('id'));
        }
    })

在info.html中,如果我得到document.href并尝试解析它,我没有得到info.html?...而是,我得到包含窗口的URL是index.html。问题,如何获取跟踪'info.html?'的数据?这是好习惯吗?我还能如何传递数据,如何在准备好文档时从info.html中检索数据?

还有一个问题,是否有办法在加载后访问info.html中的元素?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我认为这更像是你想要的东西:

    $.ajax({
      url: "info.html",
      data: {
        id:$(this).attr('id')
      },
      cache: false,
      success: function(html){
          $('#list-content').html(data);
      }
    })

如果我理解正确,您目前在index.html上,并且想要获取info.html并将其放入div中?如果是这样,你就是这样做的。

我不完全确定你为什么要把GET参数放在网址上。 ajax函数中有一个数据参数会自动创建你的GET字符串,如果你想要的话,我把它放在例子中。


回答问题:

你想要使用服务器端语言,php是一个受欢迎的选择。因此,您可能需要考虑将文件重命名为info.php(不用担心,如果它填充了html,它仍然可以工作)。然后你可以访问php中的GET参数,你可以这样做:

<?php
$id=isset($_GET['id']) ? $_GET['id'] : null;
?>

从那里你可以用$ id做任何你想做的事,回应它,在数据库查询中使用它等等。

答案 1 :(得分:0)

这是因为ajax请求是由服务器处理的,而你仍在index.html中,它位于客户端。您可以通过php中的$_GET访问它们,这是加载的默认方法。至于访问info.html中的数据,您可以在加载后在回调函数中轻松完成。

$('#list-content').load("info.html?" + $(this).attr('id'), function() {
     // js stuff here
});