尝试执行单独的 PHP 查询时 AJAX 返回当前页面

Posted

技术标签:

【中文标题】尝试执行单独的 PHP 查询时 AJAX 返回当前页面【英文标题】:AJAX returning current page when trying to execute separate PHP query 【发布时间】:2020-10-25 07:51:41 【问题描述】:

好吧,我有点卡住了……这是我的问题。所以,我想要实现的是我有一个 JS 日历,我想要它做的是当我点击一个日期时,它会获取当天可用的时间并显示它,然后根据你点击的日期进行更改在不刷新页面的情况下。现在,环顾四周,我似乎可以做到这一点的唯一方法是使用 AJAX(欢迎提出建议),虽然我以前从未接触过 AJAX,所以不知道我在这里做什么。

所以我目前已经在我的网络服务器上设置了我的 .HTACCESS 文件以使用动态子域。

这有点像一个多步骤的表格,我正在 SESSION 中收集数据。现在我猜测的方法是在这里,发送一个带有日期的 JS 变量的 AJAX 查询,然后运行 ​​SQL 查询并获取时间并显示它们。这是我目前所拥有的。

<a href="#" id="clickme">Update Session</a>

<div class="output"><?php echo $_SESSION["outputTimes"]; ?></div>

<script>
  $("#clickme").click(function(e) 
    e.preventDefault();
    $.ajax(
        type:'POST',
        url:'data.php',
        data:  date: '2020-07-04',
        success:function(response)
           alert(response);
        
    );
);
</script>

数据.php

<?php

 //Start Session
 session_start();

 //Include Database Config
 include ("config.php");

 //POST
 $requestDate = $_POST["date"];

 //Define SQL Query
 $app_get_sql = "SELECT * FROM cc_av WHERE date=$requestDate";

 //Run Query
 if($result = mysqli_query($db_connect, $app_get_sql))
    while($row = mysqli_fetch_assoc($result))
        $_SESSION["outputTimes"] = '<li>'.$row["time"].'</li>';
    
 

?>

目前,当我运行它时,我在 alert() 中得到响应,作为我所在页面的当前代码。因此,为什么我会注意到我的 HTACCESS,尽管我可以使用相同的根目录来包含()它。另外,从data.php的结果来看,我将如何输出代码来更新目前的内容。

这是我正在尝试创建的...

https://drive.google.com/file/d/1bgxSUxN6j2IOZcQBuAOo-PeCsuRgdmZ-/view?usp=sharing

提前致谢。

【问题讨论】:

您没有向输出缓冲区回显任何内容..? @Teemu 你是什么意思? 您没有将任何内容放入将作为响应发送的输出缓冲区(即没有echoprint ...),您只是为多次相同的会话变量,一次又一次地覆盖它...... @Teemu 我将在哪里实现这个?我已经在 html 中回显了 session["outputTimes"]? 在提供的代码中你没有任何回声,你只是设置了一个会话变量。还要注意达曼所说的话。 【参考方案1】:

所以,我已经设法弄清楚出了什么问题。因为我的 HTACCESS 文件正在创建子域,它还重定向了路径,所以在 AJAX 代码中我使用了代码的 URL,然后在需要请求的文件上向我的 PHP 代码添加了标题。

 header("Access-Control-Allow-Origin: (URL NEEDING TO BE REQUESTED)");

最终的 AJAX 代码

    var scriptString = 'THISISMYSTRING';
$('#clickMe').click(function()
    $.ajax(
      method: 'get',
      url: '(URL)/data.php',
      data: 
        'myString': scriptString,
        'ajax': true
      ,
      success: function(data) 
        $('#data').text(data);
      
    );
);

【讨论】:

以上是关于尝试执行单独的 PHP 查询时 AJAX 返回当前页面的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP、Ajax、jQuery 将当前 DOM 保存到服务器上的文件?

SQL内外层嵌套子查询

如何使用 PHP 为 JQuery .ajax() 返回正确的成功/错误消息?

如何使用 AJAX 执行 PHP 电子邮件脚本? [当前代码不起作用]

SQL:如何从单独的表动态计算值?

使用插入查询 CI PHP Mysql Ajax