gpt4 book ai didi

php - 基于 MySQL 查询禁用页面加载时的选择选项

转载 作者:行者123 更新时间:2023-11-29 19:32:29 25 4
gpt4 key购买 nike

就像标题所说,我有一个选择选项输入,我需要根据它们是否已添加到表中两次来禁用某些选项,如果它们已被添加到表中两次,则禁用特定时间选项选择下拉菜单。

在下面的示例代码中,您可以在表中看到 2017 年 1 月 18 日中午 12:15 已有两个条目。因此,当我加载页面时,如果选择日期为 1/18/2017,则需要在选项列表中禁用 12:15 PM。因此,如果我加载页面并选择 1/18/2017 作为日期,则中午 12:15 的选项将被禁用。

我觉得我应该能够使用一个单独的 php 文件来做到这一点,该文件将使用 QUERY 和 COUNT 从表中获取数据,但我只是不确定如何攻击它。

示例表:

TIMESTAMP           Datepicker  Timepicker
2017-01-17 08:44:15 01/21/2017 12:00 PM
2017-01-17 09:52:00 01/20/2017 11:30 AM
2017-01-17 10:07:09 01/18/2017 12:15 PM
2017-01-17 10:08:58 01/18/2017 12:15 PM

选择选项示例:

<input class="dateselect" id="datepicker" name="datepicker" type="text" placeholder="Select Date">
<select class="timeselect" id="timepicker" name="timepicker">
<option value="10-15 Minutes">Select Time</option>
<option value="08:00 AM">08:00 AM</option>
<option value="08:15 AM">08:15 AM</option>
<option value="08:30 AM">08:30 AM</option>
<option value="08:45 AM">08:45 AM</option>
<option value="09:00 AM">09:00 AM</option>
<option value="09:15 AM">09:15 AM</option>
<option value="09:30 AM">09:30 AM</option>
<option value="09:45 AM">09:45 AM</option>
<option value="10:00 AM">10:00 AM</option>
<option value="10:15 AM">10:15 AM</option>
<option value="10:30 AM">10:30 AM</option>
<option value="10:45 AM">10:45 AM</option>
<option value="11:00 AM">11:00 AM</option>
<option value="11:15 AM">11:15 AM</option>
<option value="11:30 AM">11:30 AM</option>
<option value="11:45 AM">11:45 AM</option>
<option value="12:00 PM">12:00 PM</option>
<option value="12:15 PM">12:15 PM</option>
<option value="12:30 PM">12:30 PM</option>
<option value="12:45 PM">12:45 PM</option>
</select>

任何帮助将不胜感激,我在网上找到的所有内容并不完全是我想要的。

PHP 暂定文件:

$host_name  = "xxxxxxx";
$database = "xxxxxx";
$user_name = "xxxxx";
$password = "xxxxx";


$connect = mysqli_connect($host_name, $user_name, $password, $database);

$sql = "SELECT Datepicker,
Timepicker

FROM shuttlerequests
INNER JOIN (SELECT Datepicker
FROM shuttlerequests
GROUP BY Timepicker
HAVING COUNT(id) > 1) dup
ON shuttlerequests.Datepicker = dup.Timepicker;";

if ($connect->query($sql) === TRUE) {
return $sql;
} else {
echo "Error: " . $sql . "<br>" . $connect->error;
}

最佳答案

我认为你走在正确的道路上。我将创建一个 PHP 文件,该文件根据输入日期参数​​返回“不可用”时间的列表。然后,根据我返回的列表,适本地禁用/启用选项。试试这个示例:

Javascript

function getTimes() {
var date = $('#datepicker').val();

//REPLACE THIS WITH A CALL TO YOUR PHP FILE WHICH SHOULD RETURN THE DISABLED TIMES FOR A GIVEN DATE.
$.ajax({
url: 'getdisabledtimes.php',
data: { date: date },
success: handleTimes
});
}

function handleTimes(obj) {
//INITIALLY SET ALL OPTIONS TO ENABLED
$('#timepicker option').removeAttr('disabled');
//DISABLE THE OPTIONS THAT WERE RETURNED FROM THE FUNCTION
for (var i in obj) {
$('#timepicker option[value="' + obj[i] + '"]').attr('disabled','disabled');
}
}

jsFiddle:https://jsfiddle.net/mspinks/3y69qygu/4/

-请注意单击“获取时间”按钮后禁用的时间。此示例中的“获取时间”按钮模拟在代码中选择日期。这将根据您的实现(点击、按键、模糊等)而有所不同。

可能的 PHP(尚未测试)

$host_name  = "xxxxxxx";
$database = "xxxxxx";
$user_name = "xxxxx";
$password = "xxxxx";


$connect = mysqli_connect($host_name, $user_name, $password, $database);

$sql = "SELECT Datepicker,
Timepicker

FROM shuttlerequests
INNER JOIN (SELECT Datepicker
FROM shuttlerequests
GROUP BY Timepicker
HAVING COUNT(id) > 1) dup
ON shuttlerequests.Datepicker = dup.Timepicker;";


$result = $connect ->query($sql);

if ($result->num_rows > 0) {
//CREATE AN ARRAY FOR STORAGE OF EACH TIME ENTRY (TIMEPICKER)
$disabledTimes = array();
//ITERATE THROUGH EACH DATA ROW THAT WAS RETURNED
while( $row = mysql_fetch_assoc( $result)) {
//ADD THE 'TIMEPICKER' ENTRY TO THE ARRAY
//NOTE: YOU MAY NEED TO FORMAT THE TIME STRING TO MATCH THE SELECT LIST. SHOULD BE IN THIS FORMAT: "08:00 AM"
array_push($disabledTimes , $row["Timepicker"]);
}
//SERIALIZE THE ARRAY INTO A JSON STRING. THIS SHOULD OUTPUT SOMETHING LIKE "['08:00 AM','12:30 PM']"
echo(json_encode($myArray));
} else {
echo "[]"; //NO RESULTS HERE
}

关于php - 基于 MySQL 查询禁用页面加载时的选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41705814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com