Javascript 使用AJAX运行PHP脚本,然后返回单个值
好的,这个问题因为不够清楚而结束了,所以我将以尽可能清晰的形式完全重写它 项目:客房预订系统 必需的函数:检查数据库中是否存在与条件匹配的现有预订,将“COUNT”SQL查询结果返回到另一个函数随后查找的文本框。 需要插入计数标准的值如下所示:Javascript 使用AJAX运行PHP脚本,然后返回单个值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,好的,这个问题因为不够清楚而结束了,所以我将以尽可能清晰的形式完全重写它 项目:客房预订系统 必需的函数:检查数据库中是否存在与条件匹配的现有预订,将“COUNT”SQL查询结果返回到另一个函数随后查找的文本框。 需要插入计数标准的值如下所示: 日期: 时隙: 地点: 人: 更新: (index.php): 试验 日期: 时隙: 地点: 人: 检查可用性 单击下面的按钮检查您的选项是否可用: 这将只检查其他预订。您有责任使用上述时间表检查房间是否免费。 检查可用性 函数so
日期:
时隙:
地点:
人:
更新:(index.php):
试验
日期:
时隙:
地点:
人:
检查可用性
单击下面的按钮检查您的选项是否可用:
这将只检查其他预订。您有责任使用上述时间表检查房间是否免费。
检查可用性
函数soflow(){
var var_date=$('#datebox').val();
var var_time=$('#timebox').val();
var var_room=$('#roombox').val();
$.post('checkAvailability.php',{info:'start',date:var_date,time:var_time,room:var_room},函数(数据){
document.getElementById('availResult')。innerHTML=数据;
});
}
(test.php):
您的问题有点不清楚您在这里实现了什么以及您在哪里遇到了困难,但要向ajax调用返回一个值,只需回显它。@billynoah我需要在PHP脚本中编辑什么来回显该值?我遇到的问题是将此PHP脚本(文件1)的结果返回到文件2中的文本框。您可以使用ajax发布一个值,然后在PHP中检查该发布值是否isset()
。之后,您可以回显结果,并在ajax回调中得到它。如果你还有任何问题,请在这里提问。@LeonKunštek-这听起来可能会奏效,听起来与我在其他地方读到的内容类似,但不幸的是,我不知道如何做到这一点(对所有这些都非常陌生,所以不知道从哪里开始)。有没有可能你可以解释得更深入一点,也许可以用一些示例代码来帮助我尝试和学习?感谢您如果您的目标是返回行计数,只需echo$rowcount
,并在ajax成功回调中捕获返回值这是一个非常好的起点-非常感谢。在index.php文件中,我有3个文本输入框(datebox、timebox、roombox),我需要将它们传输到“test.php”文件,以插入SQL查询的“WHERE”子句中。我只是想知道你能否指出我将如何将输入到这些输入框中的值转移到“test.php”中,然后再转移到SQL查询中?你真是个天才。我非常感谢您的帮助,不仅帮助我解决了这个问题,而且还了解了更多关于php和js的知识,以及AJAX的基础知识。再次感谢。
<html>
<head>
<title>Test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<h4>Date:</h4>
<input required type="text" name = "datebox" id = "datebox" ><br/>
<h4>Timeslot:</h4>
<input required type="text" name = "timebox" id = "timebox" ><br/>
<h4>Location:</h4>
<input required type="text" name = "roombox" id = "roombox" ><br/>
<h4>Person:</h4>
<input required type="text" name = "bookerbox" id = "bookerbox" ><br/>
<br/>
<h2>Check availability</h2>
<h4>Click the button below to check whether your options are available:</h4>
<h4>This will only check against other bookings. It is your responsibility to use the timetable above to check whether the room is actually free.</h4>
<button onclick="soflow()" id="checkAvail" >Check Availability</button>
<input onclick="unhideReview()" type="button" id="continue" value="Continue" disabled />
<input type="text" style="width: 30px;" id="availresult" value="1" />
<script>
function soflow() {
var var_date = $('#datebox').val();
var var_time = $('#timebox').val();
var var_room = $('#roombox').val();
$.post('checkAvailability.php', {info: 'start', date: var_date, time: var_time, room: var_room}, function(data) {
document.getElementById('availResult').innerHTML = data;
});
}
</script>
</body>
</html>
<?php
if(isset($_POST['info'])) {
$con = mysqli_connect("x", "x", "x", "x");
if (mysqli_connect_errno()) { // Check connection
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$date = mysqli_real_escape_string($con, $_POST['date']);
$time = mysqli_real_escape_string($con, $_POST['time']);
$room = mysqli_real_escape_string($con, $_POST['room']);
$sql="SELECT COUNT(*) FROM `Existing_Bookings` WHERE Date = '$date' AND Time = '$time' AND Room = '$room'";
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
}
?>