我的数据库有下表
event_id event_name event_date
-------------------------------------------------------------------------
1 Training on C/C++ 02-11-2015
2 Core Java 03-11-2015
3 Advanced Java 04-11-2015
4 Cloud Computing 09-11-2015
5 Cloud Computing 10-11-2015
6 Big Data 12-11-2015
日期只是字符串,即event_date列的类型为varchar。我需要检查从jQuery日期选择器中选择的日期是否与event_date
列中的至少一个日期匹配。对于所选的任何其他日期,除了2015年11月2日之外,alert
中的else
会被弹出。当我运行它时,只有第一个日期得到正确验证。循环有问题吗?我该如何解决这个问题?
<script>
$(document).ready(function () {
$("#datepicker").datepicker({
dateFormat: "dd-mm-yy"
});
$('form#dateform').submit(function(){
var aselectedDate = $('#datepicker').val();
localStorage.setItem('adate', aselectedDate);
});
});
</script>
<?php
$adateStringValue = (isset($_POST['datepicker'])) ? $_POST['datepicker'] : '';
echo '<form id="dateform" name="dateform" action="" method="POST"><br><br>
<table>
<tr>
<td><b>Select a date <b></td>
<td><input id="datepicker" name="datepicker" size="15" value="' .$adateStringValue . '"/></td>
</tr>
</table>
<br>
<input type="submit" name="submit" value="Submit"/>
</form>';
if (isset($_POST['submit']))
{
$sql1 = "SELECT event_date from events_schedule";
$getDates_query = mysql_query($sql1, $con);
$fetchdates = mysql_fetch_array($getDates_query);
while ($fetchdates = mysql_fetch_array($getDates_query))
{
if ($fetchdates['event_date'] == $adateStringValue)
{
$message = "You have selected this date for your training: $adateStringValue";
echo "<script>alert('$message');</script>";
break;
}
else
{
$message1 = "No Training Event is scheduled on this date. Please select another date";
echo "<script>alert('$message1');</script>";
break;
}
}
}
?>
答案 0 :(得分:1)
所以.. ..你从DB获取所有日期.. ..并且每次都循环遍历它们,为每一行弹出一个JS警告框。
为什么不在查询中使用日期选择器中的日期。
$sql1 = "SELECT * FROM events_schedule WHERE event_date='$adateStringValue'";
与回应的交易是否有回报。
..只是一个建议。
答案 1 :(得分:0)
如果我得到你想要的东西,你可以使用strtotime功能。它将传递给它的日期时间字符串转换为Unix时间戳,您可以将其用于比较。
如果datepicker的日期为 02-11-2015 ,则该函数将返回 1446422400 ,如果存储在db中的日期为 02-11-2015 < / strong>然后该函数也将返回 1446422400 ,这样您就可以同时处理两个easiyl。
$var1 = strtotime($adateStringValue);
$var2 = strtotime($fetchdates['event_date']);
然后可以将比较作为if($var1 == $var2)
注意:这只是功能使用的示例和说明。您必须根据需要进行修改。