【问题标题】:Pass multiple variables via Ajax through variable to PHP not working通过Ajax通过变量将多个变量传递给PHP不起作用
【发布时间】:2015-04-01 01:15:30
【问题描述】:

我想通过使用 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;
?>

任何帮助将不胜感激,我在想也许我必须将变量放入数组中?但是如果我应该这样做,我不确定该怎么做。

【问题讨论】:

    标签: javascript php jquery ajax url


    【解决方案1】:

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

    应该是

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

    【讨论】:

      【解决方案2】:
      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;
                      }
                  });
              }           
      

      【讨论】:

      • 太棒了,工作就像一个魅力,非常感谢:)。正如我所说,认为它需要在一个数组中,但不知道该怎么做。
      【解决方案3】:
      xhttp.open("GET", "url?parameter_name="+value + "&parameter_name="+value, true);
      xhttp.send();
      

      【讨论】:

      • 请在您的答案中添加一些内容,这将有助于理解它在做什么以及为什么 OP 应该使用它。
      猜你喜欢
      • 1970-01-01
      • 2013-03-05
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      相关资源
      最近更新 更多