Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过ajax将输入数据传递给另一个php?_Javascript_Php_Mysql_Ajax - Fatal编程技术网

Javascript 如何通过ajax将输入数据传递给另一个php?

Javascript 如何通过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)

谁能告诉我这有什么问题吗

我有一个索引页面,用户将在其中输入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);
?>

我的代码似乎不起作用

请在打开的方法中使用以下代码

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
像他们一样复制代码示例,而不知道他们实际上在做什么。任何人都可以从互联网上复制/粘贴,但不知道你在使用什么从来都不是一个好主意,这可能是不安全的/恶意的,或者如果它随机停止工作,那么这个人就不知道如何修复它。示例源供人们构建/扩展。有些评论可能会让人感觉很刺耳,但我看到很多这样的帖子,我知道这个人正在寻找复制/粘贴,因此没有提交答案,只是提示在哪里进行编辑/修复。