无法将参数传递到jquery加载url

Not able to pass parameter to jquery load url

本文关键字:jquery 加载 url 参数传递      更新时间:2023-09-26

我的代码如下

$(document).ready(function(){
      var bed = $( "input[name=bed]:checked" ).val();
      var bud = $( "input[name=bud]:checked" ).val();
      var loc = $("#autocomplete").val();
      $("#search_list").load('main_frame2.php?bed='+bed+'&bud='+bud+'&loc1='+loc);
    });

main_frame2.php

<?
    session_start();
    echo $loc = $_GET['loc1']   ;
    echo $bed = $_REQUEST['bed']    ;
    echo $bud = $_REQUEST['bud']    ;
?>

我得到了床和花蕾的价值。但是我没有得到loc。但是,如果我在jquery函数m中使用alert,则获取未传递给main_frame2.php 的loc名称

load发送一个GET请求,但是您的PHP正在$_POST中查找loc1值。请尝试使用$_REQUEST或更好的$_GET来检索查询字符串值。

<?
    session_start();
    echo $loc = $_GET['loc1'];
    echo $bed = $_GET['bed'];
    echo $bud = $_GET['bud'];
?>
jQuery加载执行GET。因此,与其用$_POST['loc1'];获取$loc,不如尝试$_GET['loc1'];

用替换PHP文件中的第一行代码

echo$loc=$_GET['loc1'];

如果你阅读文档,它会显示

.load(url[,data][,complete])

文档

这意味着您可以通过JSON格式的第二个参数传递数据。此外,.load内部使用GET方法,因此相应地修改您的PHP代码。

您正在传递URL中的变量。这意味着您正在向main_frame2.php.发出GET请求

从文档$_REQUEST返回所有HTTP请求变量:

默认情况下包含$_GET$_POST$_COOKIE 内容的关联数组

因此,要么以$_REQUEST['foo']$_GET['foo']的形式访问所有变量。

SO上的相关帖子可能会进一步澄清问题。希望它能让你朝着正确的方向开始。

使用$_GET而不是$_POST,您不是在发布而是在获取数据。

jQuery 解析

如果数据是作为对象提供的,则使用POST方法;否则假设为GET。

试试这个:

jQuery

$(document).ready(function(){
      var bed = $( "input[name=bed]:checked" ).val();
      var bud = $( "input[name=bud]:checked" ).val();
      var loc = $("#autocomplete").val();
      $("#search_list").load('main_frame2.php', {bed: bed, bud: bud: loc: loc}, function(){
           console.log('PHP Loaded');
      });
});

然后在你的PHP上:

<?
    session_start();
    echo $loc = $_GET['loc']  ; <<== since you are getting data from URL
    echo $bed = $_REQUEST['bed']; <<== you can also use $_GET['bed']
    echo $bud = $_REQUEST['bud']; <<== you can also use $_GET['bud']
?>