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

发布于 2024-12-08 12:21:37 字数 469 浏览 0 评论 0原文

我有类似以下内容:

    $.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,即索引.html。问题,如何获取“info.html”后面的数据?这是好的做法吗?我还能如何传递数据以及如何在文档就绪时从 info.html 检索数据?

还有一个问题,有没有办法在加载 info.html 后访问它里面的元素?

提前致谢。

I have something like the following:

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

In info.html, if I get the document.href and try to parse it, I don't get info.html?..., instead, I get the URL of the containing window which is index.html. Question, how do I get the data trailing the 'info.html?''? Is this good practice? How else can I pass in data and how can I retrieve it from info.html on document ready?

One more question, is there a way to access the elements inside info.html after loading it?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇柔作态 2024-12-15 12:21:37

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

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

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

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


回答以下问题:

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

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

从那里您可以使用 $id 执行任何您想要的操作,回显它,在数据库查询中使用它等。

i think this is more like something you want:

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

If I understand you correctly, you are currently on index.html and you want to grab info.html and put it in a div? If so, this is how you do it.

I'm not entirely sure why you are putting GET params on the url though. There is a data param in the ajax function that will automatically create your GET string, I put it in the example if that is what you want.


ANSWER TO BELOW QUESTION:

Well you'd want to use a server side language, php is a popular choice. So you might want to consider renaming your file to info.php (don't worry, it will still work if it's filled with html). Then you'll have access to the GET param in php, you can do something like:

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

From there you can do whatever you want with $id, echo it, use it in a db query, etc.

℡寂寞咖啡 2024-12-15 12:21:37

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

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

Thats because ajax request are handled by the server and you are still inside index.html, which is on the client side. You can access them via $_GET in php which is the default method for load. As for accessing data in info.html, you can easily do it in a callback function after load.

$('#list-content').load("info.html?" + $(this).attr('id'), function() {
     // js stuff here
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文