【发布时间】:2016-08-06 07:48:41
【问题描述】:
为什么我不能将变量从 js 传递到 php
$("#btnpage").click(function(){
path = $('#spantwrap').html();
$.ajax({
url: 'plus-page.php',
type: 'post',
data: {'path': path},
success: function() {
console.log(path);
}
});
location.href = 'plus-page.php';
});
plus-page.php
<form id="form1" action="?" method="post">
<input type="hidden" name="path" value="<?php echo $_POST['path'];?>" // line 46
</form>
错误:未定义的索引:第 46 行上的路径...
【问题讨论】:
-
显示您的
$('#spantwrap')html 代码。 -
您正在向服务器发送一个 POST 请求,如果成功,您将重定向到同一页面,这会导致一个 GET 请求,其中
$_POST为空。使用 Ajax,您正在对后端进行隐藏调用,并且在成功处理程序中您应该操作页面,例如在页面上显示结果。你不应该转发到另一个页面。 -
先打印/警报路径并添加 spantwrap id 的 html 会得到什么?
-
@ssc-hrep3,请看我的更新
-
删除
location.href = 'plus-page.php';,因为它总是会给你一个未定义的索引错误。您正在 GET 请求中访问$_POST['path']。