简体   繁体   English

通过Ajax通过变量将多个变量传递给PHP无法正常工作

[英]Pass multiple variables via Ajax through variable to PHP not working

Am wanting to pass three variables, one a constant the other two from a date picker, through the URL using Ajax. 我想使用Ajax通过URL传递三个变量,一个是常量,另一个是来自日期选择器的两个变量。 Am able to pass the constant through fine however the variables for the dates are just being passed as the variable name. 可以很好地传递常量,但是日期变量只是作为变量名传递。

Below is the code for the date pickers: 下面是日期选择器的代码:

        <tr>
            <td>
                <input type="text" id="range1" size="10" data-datepick="rangeSelect: true, minDate: 'new Date()'"/>
            </td>
            <td>
                <input type="text" id="range2" size="10" data-datepick="rangeSelect: true, minDate: 'new Date()'"/>
            </td>
            <td>
                <button type="button" onclick="dateRangeFunction()">Go</button>
            </td>   
        </tr>

The variables range1 and range2 contain the dates to be passed, the function to create the URL and pass the variables is below: 变量range1和range2包含要传递的日期,用于创建URL和传递变量的函数如下:

        function dateRangeFunction() {
            var range1 = document.getElementById('range1').value;
            var range2 = document.getElementById('range2').value;

            if(range1 == null || range1=="") {
                alert("Please Select A Date To Search From");
                return;
            }
                $.ajax({
                    type: 'GET',
                    url: 'daterangedetails.php?pt=7&rngstrt=" + range1 + "&rngfin=" + range2',
                    success: function (data) {
                    document.getElementById('rangeDetails').innerHTML = data;
                    }
                });
            }           
</script>

Doing an alert on the two variables shows the correct dates as selected, however when passed via the URL and using $_GET to echo the resultant variable on rngstrt and rngfin in the daterangedetails.php only gives the variable names as "range1 " & " range2. The pt value is passed correctly. 对这两个变量进行警报会显示所选的正确日期,但是当通过URL传递并使用$ _GET在daterangedetails.php中的rngstrt和rngfin上回显结果变量时,仅给出变量名称为“ range1”和“ range2 。pt值正确传递。

The code used to echo the variables is: 用于回显变量的代码是:

<?php
session_start();

include 'dbconnect.php';

$dateFrom = $_GET['rngstrt'];
$dateTo = $_GET['rngfin'];
$rangeType = $_GET['pt1'];

echo "Date From: ".$_GET['rngstrt']."<br/>";
echo "Date To: ".$dateTo."<br/>";
echo "Date: ".$criteriaDate."<br/>";
echo "Type: ".$rangeType;
?>

Any help would be greatly appreciated, I was thinking maybe I have to put the variables into an array?? 任何帮助将不胜感激,我在想也许我必须将变量放入数组中? But am unsure how to do that if that's how I should go. 但是如果那是我应该采取的方式,我不确定该怎么做。

function dateRangeFunction() {
        var range1 = $('range1').val;
        var range2 = $('range2').val;

        if(range1 == null || range1=="") {
            alert("Please Select A Date To Search From");
            return;
        }
            $.ajax({
               type  : 'GET',
                url  : 'daterangedetails.php',
                data : {pt:'7',rngstrt:range1, rngfin:range2},
                success: function (data) {
                document.getElementById('rangeDetails').innerHTML = data;
                }
            });
        }           

url: 'daterangedetails.php?pt=7&rngstrt=" + range1 + "&rngfin=" + range2',

应该

url: 'daterangedetails.php?pt=7&rngstrt=' + range1 + '&rngfin=' + range2,

xhttp.open("GET", "url?parameter_name="+value + "&parameter_name="+value, true);
xhttp.send();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM