как создать отчет между двумя датами, используя datepicker, ajax, php, mysql.?

Мне была поставлена ​​задача создать отчет между двумя датами, используя datepicker, ajax, php и mysql. ниже мой 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

 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>"; в 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>"; 

Проблема в том, что когда я выбираю обе даты, ничего не происходит. любезно помогите мне в этой ситуации. простые примеры были бы весьма полезны. Благодарю.

измените свой html на это: у вас есть showUser() not showuser() поэтому измените входной onchage="showUser()".

напишите onchange событие как на inputs.so в обоих полях, которые они вызывают. и в вашей дате использования sql (дата), если вы отправляете только дату из столбца front-end и date в базе данных, введите тип 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.

 I have Created Whole Tutorial for Date Wise Report, so once try it 

Структура таблицы

 CREATE TABLE IF NOT EXISTS `bookings` ( `id` int(12) NOT NULL AUTO_INCREMENT, `date` date NOT NULL, `start` varchar(255) NOT NULL, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `phone` varchar(20) NOT NULL, `comments` longtext NOT NULL, `approved` varchar(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; INSERT INTO `bookings` (`id`, `date`, `start`, `name`, `email`, `phone`, `comments`, `approved`) VALUES (1, '2014-12-17', 'yes', 'Mahendra', 'mahendra@XXXX', '89XXXXXXXX', 'nothing', 'yes'), (2, '2014-12-18', 'no', 'Rahul', 'rahul@XXXXXX', '987XXXXXXX', 'very nice article', 'yes'); 

Проверьте, соответствует ли дата, присланная datepicker с использованием AJAX, в допустимом формате, подходящем для вашего запроса?

Попробуйте отобразить эти две переменные, переданные HTML datepicker на странице PHP:

echo $ _GET ["fromdate"]; echo $ _GET ["todate"];

Это даст вам намек на любую проблему, если она есть.