这是我现在使用的javascript
<script>
$( document ).ready(function() {
var namer = sessionStorage.getItem("namer");
$.ajax({
type: "POST",
url: "Antibiotics2.php",
data: { 'name': namer }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
</script>
这是php:
<?php echo $_POST['name']; ?>
它抛出一个错误并说无法找到索引'name'。
答案 0 :(得分:2)
您没有告诉PHP您要发送的变量的名称:
$.ajax({
type: 'post',
url: 'Antibiotics2.php',
data: { 'namer': namer }
});
});
你需要在PHP端$_POST
,引用变量名称:
<?php echo $_POST['namer']; ?>
答案 1 :(得分:1)
您正在进行一次调用,因此您需要使用$ _POST而不是$ _GET。另外,使用字符串键的引号
echo $_POST['namer'];
答案 2 :(得分:1)
由于您要发布帖子请求,因此您必须使用$_POST
来检索数据,您还必须将数据作为键/值对发送,例如
<script>
$(document).ready(function() {
var namer = sessionStorage.getItem("namer");
$.ajax({
type: 'post',
url: 'Antibiotics2.php',
data: {namer:namer}
});
});
</script>
PHP
<?php echo $_POST['namer']; ?>
答案 3 :(得分:0)
问题中发布的Ajax代码对我有用。但我正在使用Java和我的东西
<?php echo $_POST['namer']; ?>
是
的php等价物<%= request.getParameter("namer") %>
JSP中的
请打开firebug或chrome开发人员工具,查找Ajax请求发送的整个请求参数。
希望这会有所帮助。
答案 4 :(得分:0)
我已经复制了您的设置,每次我都能够检索$ _POST中的变量集。我也避免修改名称,因为你声明在类似的问题中正确地捕获了会话。
我能够通过将namer变量设置为undefined或尝试检索不存在的值来重现错误。
由于我能够发送变量名称,只要它已经设置好,那么你将不得不做几件事。
检查是否设置了namer变量,可能是客户端和服务器端。这是在javascript中你会测试变量是不是未定义的,或者在php中你会检查是否设置了$ _POST ['namer']。
您的会话可能会过期,因此您正在尝试检索当前不再存在的值,这可能取决于您正在使用的库或创建会话时声明的设置
在这两种情况下,您都会遇到相同的错误,通过做一些逻辑,您将避免此错误。
服务器端检查 - PHP:
if(isset($_POST['namer'])){
echo $_POST['namer'];
}else{
echo "session capture unsuccessful";
}
客户端检查 - Javascript:
var namer = sessionStorage.getItem("namer");
if (typeof namer === "undefined")
console.log("your session is not set");
} else{
// you could place your ajax request here
// or you could set the namer variable to a default value
}
请尽可能在本地开发您的Web应用程序,因为它更容易调试,作为最后的注释,使用console.log(yourError)进行调试可能更容易,而不是警告(yourError)。