通过 Ajax 通过变量将多个变量传递给 PHP 不起作用
Pass multiple variables via Ajax through variable to PHP not working
我想使用 Ajax 通过 URL 传递三个变量,一个是常量,另外两个来自日期选择器。我能够很好地传递常量,但是日期变量只是作为变量名传递。
下面是日期选择器的代码:
<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>
变量 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>
对两个变量进行警报显示所选的正确日期,但是当通过 URL 传递并使用 $_GET 仅在 daterangedetails.php 中回显 rngstrt 和 rngfin 上的结果变量时将变量名称指定为 "range1 " & " range2。pt 值已正确传递。
用于回显变量的代码是:
<?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;
?>
任何帮助将不胜感激,我在想也许我必须将变量放入数组中??但是我不确定该怎么做,如果我应该这样做的话。
url: 'daterangedetails.php?pt=7&rngstrt=" + range1 + "&rngfin=" + range2',
应该是
url: 'daterangedetails.php?pt=7&rngstrt=' + range1 + '&rngfin=' + range2,
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;
}
});
}
xhttp.open("GET", "url?parameter_name="+value + "¶meter_name="+value, true);
xhttp.send();
我想使用 Ajax 通过 URL 传递三个变量,一个是常量,另外两个来自日期选择器。我能够很好地传递常量,但是日期变量只是作为变量名传递。
下面是日期选择器的代码:
<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>
变量 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>
对两个变量进行警报显示所选的正确日期,但是当通过 URL 传递并使用 $_GET 仅在 daterangedetails.php 中回显 rngstrt 和 rngfin 上的结果变量时将变量名称指定为 "range1 " & " range2。pt 值已正确传递。
用于回显变量的代码是:
<?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;
?>
任何帮助将不胜感激,我在想也许我必须将变量放入数组中??但是我不确定该怎么做,如果我应该这样做的话。
url: 'daterangedetails.php?pt=7&rngstrt=" + range1 + "&rngfin=" + range2',
应该是
url: 'daterangedetails.php?pt=7&rngstrt=' + range1 + '&rngfin=' + range2,
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;
}
});
}
xhttp.open("GET", "url?parameter_name="+value + "¶meter_name="+value, true);
xhttp.send();