如何使用日期选择器,AJAX,PHP和MySQL生成两个日期之间的报告?日期、如何使用、两个、报告

2023-09-10 14:23:11 作者:南辞、

我一直在考虑一个任务生成使用日期选择器,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.