php - 使用 AJAX 从 MySQL 获取数据

标签 php javascript jquery ajax

我需要从 php 文件中的表单中获取输入(日期),并使用日期变量从 mysql 数据库中选择数据,并在不刷新页面的情况下在同一个 php 文件中返回一个数组。现在,我有 3 个文件:index.phpglobal.jsdate.php

index.php 接受输入(在本例中为日期)

Date: <input type="text" id="date">
  <input type="submit" id="date-submit" value="Submit">
  <div id="date-data"></div>
  <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script src="js/global.js"></script>

global.js 监听提交按钮的点击并将输入(日期)发布到 date.php

$('input#date-submit').on('click', function() {
    var date = $('input#date').val();
    $.post('../ajax/date.php', {date: date}, function(data) {
        $('div#date-data').html(data);
        alert(data);
    });

});

date.php 取日期查询mysql数据库返回数组。这个数组需要传回 index.php 但我不知道该怎么做。

<?php 

$con = mysql_connect('localhost', 'root', 'pass');
mysql_select_db('gymflow', $con);
  $date = $_POST['date'];
  $query = mysql_query("SELECT * FROM table WHERE `date` = $date");
    $values = array();

  while ($row = mysql_fetch_array($query))
  {
    $values[] = $row['utilization'];
  }
echo json_encode($values);

?>

理想情况下,我需要能够将 date.php 中的 $values 变量传递给 中的 $values 变量>index.php

必须有更简单的方法来做到这一点......

最佳答案

AJAX 调用的目的是不刷新 index.php,而是将 data.php 的结果直接传送到第一页。您可以通过 javascript 回调修改 DOM,并且应该在 data.php 中进行其他数据库请求。让 index.php 知道 data.php 的输出是没有意义的,因为当调用 Javascript 时,您的第一个页面已经处理并发送到客户端并且可能已经呈现在浏览器窗口中。

如果您需要知道随后对 index.php 的请求中的输入值,您可以将值存储在用户的 session 中。

关于php - 使用 AJAX 从 MySQL 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030600/

相关文章:

php - MySQL:如果此 ip 没有任何记录,则插入

javascript - 使用带有 Promise 的 ldapjs

javascript - 动态添加带有动画的 gif 图像

jquery - Select2 插件 : Showing selected options outside the form element

javascript - javascript 中的正则表达式出现意外结果

java - JavaScript 中的错误消息

php - MySQL/MariaDB 不接受 JSON 格式?无法创建数据库

php - php如何使用条件获取多个表列值

php - 在 footer.php Wordpress 中添加脚本 jquery

javascript - 如何知道特定元素是否存在?