有人可以告诉我这有什么问题吗?
我有一个索引页面,用户将输入2个日期并通过ajax将其发送到另一个php页面,即month.php。然后month.php将在mysql查询中使用这些用户输入的日期,并从数据库中选择数据。我的方法似乎不起作用。
的index.php
<SCRIPT>
function loadMonth()
{
var xmlhttp;
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("myDivs").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","month.php",true);
xmlhttp.send();
}
</SCRIPT>
<div class="form" align="center">
Select Dates<br>
<input type="date" name="date1" ><br><br>
To<br>
<input type="date" name="date2" ><br><br>
<input type="submit" onclick="loadMonth()" value="Search">
<div id="myDivs"></div>
</div>
month.php
<?php
$getdate1 = $_POST['date1'];
$getdate2 = $_POST['date2'];
$conn = mysqli_connect("localhost", "root", "", "table1");
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$today = date("Y-m-d");
$sql = "SELECT items, COUNT(*) as Number
FROM table1
WHERE (date_table BETWEEN '".$getdate1."' AND '".$getdate2."')
GROUP BY items";
$result = mysqli_query($conn, $sql);
?>
我的代码似乎无法正常工作
答案 0 :(得分:3)
您没有向month.php发送任何参数,您可以使用GET方法发送它,如下所示:
xmlhttp.open("GET","month.php?date1=someDate&date2=anotherDate",true);
在PHP代码中:
$getdate1 = $_GET['date1'];
$getdate2 = $_GET['date2'];
或使用POST方法:
xmlhttp.open("POST","month.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("date1=someDate&date2=anotherDate");
保持php代码就好了。
重要提示:请确保在使用之前转义值 SQL查询或使用预处理语句,除此之外,您是易受攻击的 到SQL注入。
您应该搜索“阻止SQL注入PHP”
答案 1 :(得分:1)
在open方法中使用以下代码
xmlhttp.open("GET","month.php?date1=yourdate&date2=yourdate",true);
date1和date2正在使用GET方法接收,所以在服务器端你应该有:
$getdate1 = $_GET['date1'];
$getdate2 = $_GET['date2'];
<强>编辑:强>
我还展示了如何使用
从输入类型中获取日期值在你的html给输入字段的id属性中,以便在javascript中轻松访问
<input type="date" name="date1" id = "iddate1" ><br><br>
<input type="date" name="date2" id = "iddate2" ><br><br>
你的脚本部分:
var fdate1 = document.getElementById('iddate1').value;
var fdate2 = document.getElementById('iddate2').value;
xmlhttp.open("GET","month.php?date1="+fdate1+"&date2="+fdate2,true);