使用AJAX运行PHP脚本,然后返回单个值

问题描述 投票:1回答:1

在为我正在上大学的项目中寻求帮助。

场景:

我有一个数据库表,其中包含现有的房间预订(日期,时间,房间,人)。我已经编写了一个PHP脚本来检查该数据库中的现有预订(它计算与日期,时间和房间匹配的记录)。结果将永远为0或1。然后,我使用此0或1启用或禁用继续按钮,以防止重复预订。

但是,我需要单击“检查可用性”按钮来触发此php脚本。我已经完成了一些Google搜索,发现唯一的方法是通过AJAX脚本,这是我以前从未使用过的脚本。我已经尝试过在Google上适应这种情况的一些方法,但是似乎无法使用任何方法-我也无法判断AJAX脚本是否正在实际运行,故障是否在其他地方等等。

简而言之,我需要知道如何将PHP脚本的结果返回到用户当前所在的index.php页面上的文本框中,而无需重新加载页面。

这里是检查可用性的PHP脚本,当前保存为'checkAvailability.php'(我输入了一些库存值,而不是此帖子的变量)。

<?php

$con = mysqli_connect("x", "x", "x", "x");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="SELECT COUNT(*) FROM `Existing_Bookings` WHERE Date = '2019-12-31' AND Time = 'Period 6' AND Room = 'C3'";

if ($result=mysqli_query($con,$sql))
  {
  // Return the number of rows in result set
  $rowcount=mysqli_num_rows($result);
  // Free result set
  mysqli_free_result($result);
  }
mysqli_close($con);
?>

此代码的结果将为'1',这将通过另一个脚本禁用我的'继续'按钮。我需要将此[1]返回到availResult文件中ID为[index.php”的文本框。

我希望以上所有内容都是有道理的,非常感谢您的帮助。对于这一切我都非常陌生,因此对我的工作中出现的任何其他错误或缺乏最佳实践表示歉意-我希望以后能够解决这些问题,或者学习改进我的技术。

javascript php jquery ajax
1个回答
0
投票

((index.php):

<html>
    <head>
        <title>Test</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    </head>
    <body>
        <p id="availResult"></p>
        <script>
            $.post('test.php', {info: 'start'}, function(data) { //if you don't need to send any data to the php file then you can set the value to whatever you want
                document.getElementById('availResult').innerHTML = data;
            });
        </script>
    </body>
</html>

(test.php):

<?php
    if(isset($_POST['info'])) {
        $con = mysqli_connect("x", "x", "x", "x");
        // Check connection
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }

        $sql="SELECT COUNT(*) FROM `Existing_Bookings` WHERE Date = '2019-12-31' AND Time = 'Period 6' AND Room = 'C3'";

        if ($result=mysqli_query($con,$sql)) {
            // Return the number of rows in result set
            $rowcount = mysqli_num_rows($result);
            // Free result set
            mysqli_free_result($result);
        }
        mysqli_close($con);
        echo $rowcount; // echo the data you want to send over ajax
    }
?>

您也可以使用纯JavaScript进行ajax,但这比较简单。该脚本将在加载后立即执行,因此如果您希望单击按钮即可将其激活,则可以将其放入函数中。还请注意,这仅是有关如何首先进行ajax连接的示例。

© www.soinside.com 2019 - 2024. All rights reserved.