Javascript 如何通过ajax将输入数据传递给另一个php?
谁能告诉我这有什么问题吗 我有一个索引页面,用户将在其中输入2个日期,并通过ajax将其发送到另一个php页面,即month.php。然后,month.php将在mysql查询中使用用户输入的日期,并从数据库中选择数据。我的方法似乎不管用 index.phpJavascript 如何通过ajax将输入数据传递给另一个php?,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,谁能告诉我这有什么问题吗 我有一个索引页面,用户将在其中输入2个日期,并通过ajax将其发送到另一个php页面,即month.php。然后,month.php将在mysql查询中使用用户输入的日期,并从数据库中选择数据。我的方法似乎不管用 index.php <SCRIPT> function loadMonth() { var xmlhttp; if (window.XMLHttpRequest)
<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);
?>
我的代码似乎不起作用请在打开的方法中使用以下代码
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>
在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>
您没有向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注入
您应该搜索“Prevent SQL Injection PHP”如果您没有向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”您已经用jQuery标记了它,但正在使用本机javascript ajax调用。我可能会建议使用jQuery的内置.ajax功能,因为它会简化很多事情。这会是您的问题吗?xmlhttp.openGET,month.php,true;-$getdate1=$_POST['date1'];在ajax中获取方法,但在php上发布方法?抱歉,我只是标记了它,因为它在推荐中,所以我应该更改xmlhttp.openGET,month.php,true;到xmlhttp.openPOST,month.php,true?您想发布数据还是想获取数据。。。思考您的问题,并在使用示例代码时花多一点时间阅读示例代码。这是一个很简单的错误,但是如果您使用复制/粘贴源代码,那么阅读、理解源代码总是很重要的,这样您就可以根据需要对其进行更改。我可能会建议使用jQuery的内置.ajax功能,因为它会简化很多事情。这会是您的问题吗?xmlhttp.openGET,month.php,true;-$getdate1=$_POST['date1'];在ajax中获取方法,但在php上发布方法?抱歉,我只是标记了它,因为它在推荐中,所以我应该更改xmlhttp.openGET,month.php,true;到xmlhttp.openPOST,month.php,true?您想发布数据还是想获取数据。。。思考您的问题,并在使用示例代码时花多一点时间阅读示例代码。这是一个很简单的错误,但是如果您使用复制/粘贴源代码,那么阅读、理解源代码总是很重要的,这样您就可以根据需要对其进行更改。我应该在someDate和anotherDate中输入什么?您应该输入您想要的值send@ecarrizo我同意你的编辑。老实说,我认为EWFEUFCWQREW应该花更多的时间研究源代码,以便更好地理解源代码的作用。使用服务器端语言很好,但如果你不小心,可能会使你的网站处于危险之中。@NewToJS同意,我希望如果有人复制问题代码,请参阅建议。因为大多数人都像他们一样复制代码示例,而不知道他们实际上在做什么。任何人都可以从互联网上复制/粘贴,但不知道你在使用什么从来都不是一个好主意,这可能是不安全的/恶意的,或者如果它随机停止工作,那么这个人就不知道如何修复它。示例源供人们构建/扩展。有些评论可能会让人感觉很刺耳,但我看到很多这样的帖子,我知道此人正在寻找复制/粘贴,因此没有提交答案,只是提示在哪里进行编辑/修复。我应该在someDate和anotherDate中输入什么?你应该输入你想要的值send@ecarrizo我同意你的编辑。老实说,我认为EWFEUFCWQREW应该花更多的时间研究源代码,以便更好地理解源代码的作用。使用服务器端语言很好,但如果你不小心,可能会使你的网站处于危险之中。@NewToJS同意,我希望如果有人复制问题代码,请参阅建议。因为大部分的poep
像他们一样复制代码示例,而不知道他们实际上在做什么。任何人都可以从互联网上复制/粘贴,但不知道你在使用什么从来都不是一个好主意,这可能是不安全的/恶意的,或者如果它随机停止工作,那么这个人就不知道如何修复它。示例源供人们构建/扩展。有些评论可能会让人感觉很刺耳,但我看到很多这样的帖子,我知道这个人正在寻找复制/粘贴,因此没有提交答案,只是提示在哪里进行编辑/修复。