我的代码如下
$(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函数中使用alert m获取未传递给main_frame2.php
答案 0 :(得分:1)
load
发送GET请求,但您的PHP正在$_POST
查找loc1
值。尝试使用$_REQUEST
或更好,$_GET
来检索您的查询字符串值。
<?
session_start();
echo $loc = $_GET['loc1'];
echo $bed = $_GET['bed'];
echo $bud = $_GET['bud'];
?>
答案 1 :(得分:1)
jQuery加载执行GET
。因此,不要将$loc
与$_POST['loc1'];
一起使用,请尝试$_GET['loc1'];
答案 2 :(得分:1)
使用$_GET
代替$_POST
,您不会发布,而是获取数据。
jQuery的解释
如果数据作为对象提供,则使用POST方法;除此以外, 假设GET。
答案 3 :(得分:1)
用
替换PHP文件中的第一行代码echo $ loc = $ _GET [&#39; loc1&#39;];
答案 4 :(得分:1)
如果您阅读文档,则说
.load(url [,data] [,complete])
这意味着您可以以JSON格式传递第二个争论中的数据。此外,.load内部使用GET方法,因此相应地修改您的PHP代码。
答案 5 :(得分:1)
试试这个:
<强>的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']
?>
答案 6 :(得分:1)
您正在传递URL中的变量。这意味着您正在向 main_frame2.php 发出GET
个请求。
从the documentation $_REQUEST
返回所有 HTTP请求变量:
默认情况下包含
内容的关联数组$_GET
,$_POST
和$_COOKIE
因此,您可以将所有变量视为$_REQUEST['foo']
或$_GET['foo']
。
可能会进一步澄清事情的relevant post on SO。希望它能让你开始朝着正确的方向前进。