在为我正在上大学的项目中寻求帮助。
场景:
我有一个数据库表,其中包含现有的房间预订(日期,时间,房间,人)。我已经编写了一个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
”的文本框。
我希望以上所有内容都是有道理的,非常感谢您的帮助。对于这一切我都非常陌生,因此对我的工作中出现的任何其他错误或缺乏最佳实践表示歉意-我希望以后能够解决这些问题,或者学习改进我的技术。
((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连接的示例。