使用jQuery向PHP传递变量时出现的问题
我有以下代码:使用jQuery向PHP传递变量时出现的问题,php,jquery,ajax,Php,Jquery,Ajax,我有以下代码: <?php $id = $_GET['id']; ?> <html> <head> <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> </head> <body> <script> var id = $.urlParam('id');
<?php
$id = $_GET['id'];
?>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<script>
var id = $.urlParam('id');
var id = <?php echo $id; ?>;
$.post("api.php", { id: id });
$.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(data)
{
var path = data[0];
alert(path);
}
});
</script>
</body>
</html>
变量id=$.urlParam('id');
变量id=;
$.post(“api.php”,{id:id});
$.ajax({
url:'api.php',
数据:“,
数据类型:“json”,
成功:功能(数据)
{
变量路径=数据[0];
警报(路径);
}
});
我在URL中有一个名为id的变量(例如),我试图将它发送到一个名为api.php的页面,在那里我有数据库查询。然后我尝试获取这个id的对应值(在我的案例路径中)并返回它。但是,似乎没有将变量id传递给api.php。我已经在api.php($id=1)中硬编码了id变量,查询工作正常,之后我可以从数据库中获取值,但在api.php中,我输入了以下内容:
<?php
if($_POST) {
$id = $_POST['id'];
}
?>
那就不行了。我不确定$.post()方法是否不起作用,或者由于某种原因,我无法在PHP脚本中获取id变量的值
有人能帮我解决这个问题吗
问候,,
Ivan首先,您的
$.post()
调用没有回调,因此即使发出post请求,在成功时也没有代码可执行
第二个调用,$.ajax()
没有指定类型
参数(或调用的任何数据),因此将使用GET
。在api.php
文件中,您正在检查$\u POST
超全局,它当然不包含id
的值,因为您使用的是GET
,而不是POST
您应该更新$.ajax()
调用,如下所示:
$.ajax({
url: 'api.php',
data: { 'id': <?php echo $_GET['id'] ?> },
dataType: 'json',
type: 'post'
}).done(function(data) {
var path = data[0];
alert(path);
});
首先,您的
$.post()
调用没有回调,因此即使发出post请求,在成功时也没有代码可执行
第二个调用,$.ajax()
没有指定类型
参数(或调用的任何数据),因此将使用GET
。在api.php
文件中,您正在检查$\u POST
超全局,它当然不包含id
的值,因为您使用的是GET
,而不是POST
您应该更新$.ajax()
调用,如下所示:
$.ajax({
url: 'api.php',
data: { 'id': <?php echo $_GET['id'] ?> },
dataType: 'json',
type: 'post'
}).done(function(data) {
var path = data[0];
alert(path);
});
首先,您的
$.post()
调用没有回调,因此即使发出post请求,在成功时也没有代码可执行
第二个调用,$.ajax()
没有指定类型
参数(或调用的任何数据),因此将使用GET
。在api.php
文件中,您正在检查$\u POST
超全局,它当然不包含id
的值,因为您使用的是GET
,而不是POST
您应该更新$.ajax()
调用,如下所示:
$.ajax({
url: 'api.php',
data: { 'id': <?php echo $_GET['id'] ?> },
dataType: 'json',
type: 'post'
}).done(function(data) {
var path = data[0];
alert(path);
});
首先,您的
$.post()
调用没有回调,因此即使发出post请求,在成功时也没有代码可执行
第二个调用,$.ajax()
没有指定类型
参数(或调用的任何数据),因此将使用GET
。在api.php
文件中,您正在检查$\u POST
超全局,它当然不包含id
的值,因为您使用的是GET
,而不是POST
您应该更新$.ajax()
调用,如下所示:
$.ajax({
url: 'api.php',
data: { 'id': <?php echo $_GET['id'] ?> },
dataType: 'json',
type: 'post'
}).done(function(data) {
var path = data[0];
alert(path);
});
这是我想你可能会困惑的地方
$.post()
是使用完整的$.ajax
的快捷方式。您可以使用其中一个,而不是同时使用两个
要使用$.post
,您需要对返回的数据进行回调
尝试删除$.ajax
并执行以下操作
$.post("api.php", { id: id })
.done(function(response){
alert(response);
});
现在在php中,您不会向页面显示任何输出
因此,请尝试:
<?php
if(isset($_POST['id']) ) {
$id = $_POST['id'];
echo $id;
}
?>
我想你可能会感到困惑
$.post()
是使用完整的$.ajax
的快捷方式。您可以使用其中一个,而不是同时使用两个
要使用$.post
,您需要对返回的数据进行回调
尝试删除$.ajax
并执行以下操作
$.post("api.php", { id: id })
.done(function(response){
alert(response);
});
现在在php中,您不会向页面显示任何输出
因此,请尝试:
<?php
if(isset($_POST['id']) ) {
$id = $_POST['id'];
echo $id;
}
?>
我想你可能会感到困惑
$.post()
是使用完整的$.ajax
的快捷方式。您可以使用其中一个,而不是同时使用两个
要使用$.post
,您需要对返回的数据进行回调
尝试删除$.ajax
并执行以下操作
$.post("api.php", { id: id })
.done(function(response){
alert(response);
});
现在在php中,您不会向页面显示任何输出
因此,请尝试:
<?php
if(isset($_POST['id']) ) {
$id = $_POST['id'];
echo $id;
}
?>
我想你可能会感到困惑
$.post()
是使用完整的$.ajax
的快捷方式。您可以使用其中一个,而不是同时使用两个
要使用$.post
,您需要对返回的数据进行回调
尝试删除$.ajax
并执行以下操作
$.post("api.php", { id: id })
.done(function(response){
alert(response);
});
现在在php中,您不会向页面显示任何输出
因此,请尝试:
<?php
if(isset($_POST['id']) ) {
$id = $_POST['id'];
echo $id;
}
?>
您在JS中定义了两次id
。如果您查看ajax request,是否存在值?$。ajax()
执行get请求,而不是post。这意味着当您执行.ajax()调用时,$\u POST将不会被设置。如果您尚未在页面中包含该插件函数,则无法使用$.urlParam('id')
。将抛出异常并破坏您的代码。还有背对背的ajax请求…第二个没有数据和GET,第一个没有完成回调。ajax选项键入:'post'
@ToniMichelCaubet更不用说任何数据了…您在JS中定义了两次id
。如果您查看ajax request的值是多少?$。ajax()
是否有get reques