我一直在考虑一个任务生成使用日期选择器,AJAX,PHP和MySQL两个给定日期之间的报告。下面是我的html:
I have been given a task to generate a report between two given dates using datepicker,ajax,php and mysql. below is my html:
From date: <input type="text" id="fromdate" value=""> To date: <input type="text" id="todate" value="" onChange="showuser(document.getElementById('fromdate').value,document.getElementById('todate').value)">
<br>
<div id="txtHint"><b>User informathions will be listed here.</b></div>
脚本:
<script>
$(function() {
$( "#fromdate" ).datepicker();
$( "#todate" ).datepicker();
});
</script>
<script type="text/javascript">
function showUser(fromdate,todate)
{
if (fromdate =="" && todate=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","bet_date.php?fromdate="+fromdate+"&todate="+todate,true);
xmlhttp.send();
}
</script>
下面是这是为了生成报告的PHP文件: bet_date.php
Here is the php file which is supposed to generate the report: bet_date.php
include("database.php");
$fromdate=$_GET["fromdate"];
$todate=$_GET["todate"];
$sql = "SELECT * FROM bookings WHERE date between '$fromdate' and '$todate'";
$result = mysql_query($sql);
echo "<table border='1'>
<tr>
<th>id</th>
<th>date</th>
<th>start</th>
<th>name</th>
<th>email</th>
<th>phone</th>
<th>comments</th>
<th>approved</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['start'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "<td>" . $row['phone'] . "</td>";
echo "<td>" . $row['comments'] . "</td>";
echo "<td>" . $row['approved'] . "</td>";
echo "</tr>";
}
echo "</table>";
现在的问题是,当我选择这两个则什么也不会发生的日期。 好心帮我在这种情况下。 简单的例子是大大AP preciated。 谢谢你。
The problem is when I select both the date then nothing happens. kindly help me in this situation. simple examples would be greatly appreciated. Thanks.
改变你的HTML这样:你 showUser()
不是 showuser( )
这样的变化在输入 onchage =showUser()。
change your html to this:you have showUser()
not showuser()
so change in input onchage="showUser()".
写的onchange
事件,无论在这两个领域,他们将触发inputs.so。在你的SQL使用日期(日期),如果你是从前端和日期列在数据库中只发送日期为datetime类型的。
write onchange
event to both the inputs.so on both fields they will trigger. and in your sql use date(date) if you are sending only date from front-end and date column in database is of type datetime..
"SELECT * FROM bookings WHERE date(date) between '$fromdate' and '$todate'";
From date: <input type="text" id="fromdate" value="" onChange="showUser()"> To date: <input type="text" id="todate" value="" onChange="showUser()">
function showUser()
{
var fromdate = $( "#fromdate" ).val();
var todate= $( "#todate" ).val();
// rest of your code:
}
希望你得到后/获取正确的PHP参数。
hope you are getting post/get parameters properly in php.