0

我有一个主文件发出一些 ajax 请求来更新 MySQL 结果,但是它连接的数据库基于子目录中的配置进行了更改。(/app/directory 的 index.php 具有include: '../main.php'以及相应的 SQL 连接)

将此用于我的 ajax 请求:

<script>   $(function() {
    setInterval(function() {
        $.ajax({
            type: "GET",
            cache: false,
            url: <?php echo "'../fetch.php?year=$year&month=$month&date=$date'";?>,

            success: function(html) {
                $(".list").html(html);
           }

        });
    }, 5000); });

</script>

fetch.php 是我的 sql 查询的副本

这只是返回一个 sql 错误,因为它没有携带它应该连接到的数据库,所以它什么都没有连接。data: {club:<?php echo $club;?>}然后$club在 fetch.php 文件上分配给适当的数据库,但它似乎破坏了我的 ajax 请求(没有错误,它只是不轮询)。

如何制作一个使用 ajax 的包含页面,该页面依赖于在其他地方声明的变量?

4

2 回答 2

1

您是对的,Ajax 调用,就像来自客户端的任何其他请求一样,无法访问在先前请求中声明的资源。HTTP 只是像这样的无状态混乱......(当然有解决这个问题的机制,会话,隐藏字段,更神秘的东西,比如网络工作者......)

如果我理解正确,您的数据库连接是通过 index.php 和 main.php 建立的,但您的 ajax 调用直接请求 fetch.php。要访问您的数据库连接,您还需要在 fetch.php 中包含相应的文件(main.php?)。

顺便说一句,不必处理这些问题是使用提供单一入口点和路由的框架的主要原因之一

于 2013-07-22T14:02:21.823 回答
-1

好吧,我是个白痴。我在 URL ( ) 中添加了一个变量,&club=$club然后分配了 ajax 应该连接到的数据库$_GET['club']

如此简单,但我只是想不出

于 2013-07-22T13:54:51.783 回答