提问人:Abhishek Kaushik 提问时间:6/23/2014 最后编辑:Rory McCrossanAbhishek Kaushik 更新时间:6/23/2014 访问量:1111
Post 请求中的未定义索引
Undefined Index in Post request
问:
我不知道为什么我会得到这个奇怪的错误!
PHP 注意:未定义索引:第 5 行 /var/www/echo.php 中的 refId
我正在获得控制台输出,但无法回显。我在这里做错了什么吗?refId
<?php
$rollUrl = 34;
$refId = $_POST['refId'];
echo $refId;
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$.ajax({
url:'echo.php',
type: 'POST',
data: { 'refId': "<?php echo $rollUrl ?>" },
success: function(response){
console.log('Getting response');
}
});
</script>
答:
0赞
Moeed Farooqui
6/23/2014
#1
发生这种情况是因为未设置变量。用isset
<?php
$rollUrl=34;
if(isset($_POST['refId'])) {
$refId=$_POST['refId'];
echo $refId;
}
?>
更新:
您应该将 as a name 属性分配给任何输入字段,以恢复用户的输入。refId
<input type="text" name="refId" />
评论
1赞
Abhishek Kaushik
6/23/2014
不,那没有帮助..!它只是一个文件。
0赞
Moeed Farooqui
6/23/2014
检查输入字段的名称,并确保已将其设置为 。refId
0赞
Abhishek Kaushik
6/23/2014
是的。。。!我没有任何输入字段。它只是上面的代码。
0赞
Moeed Farooqui
6/23/2014
您应该将任何字段定义为名称属性,您可以从中接收来自用户的输入。查看我更新的答案refId
1赞
Abhishek Kaushik
6/23/2014
我没有接受任何用户输入。我想在特定函数之后执行ajax调用。不需要输入。假设只发送一个密钥对值。它应该可以工作 r8?
1赞
user1932079
6/23/2014
#2
请参阅以下代码中的注释:
<?php
$rollUrl = 34;
//Only try to process POST if there is something posted *and* refId exists
if (count($_POST) > 0 && isset($_POST['refId'])) {
$refId = $_POST['refId'];
echo $refId;
//Exit after echoing out the refId so that the HTML below does not also get returned.
exit();
}
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$.ajax({
url:'echo.php',
type: 'POST',
data: { 'refId': "<?php echo $rollUrl ?>" },
success: function(response) {
//Updated log to show the actual response received.
console.log('Getting response of "' + response + '"');
}
});
</script>
当我在没有抛出任何错误和执行 Ajax 的情况下进行测试时,这对我有用。
评论
0赞
Abhishek Kaushik
6/23/2014
磨坊主。。!我运行了您建议的相同代码..!事实上复制粘贴了它..!但没有得到回声。:(
0赞
6/23/2014
如果它来自我编辑之前,请重试。我的系统上有名为 diff 的文件。如果是在之后,请确保您在控制台中或将其更改为警报。
0赞
Abhishek Kaushik
6/23/2014
是的。。!我更改了文件名..!这是令人讨厌的。你得到回声值了吗??
0赞
6/23/2014
“不工作”是“从不工作”的唯一解释 脚本确实按照您的要求“工作”,它确实返回 POST 的 refId。如果您在体验时遇到困难,则需要更多细节。顺便说一句:SO 上很少需要感叹号来表达你的观点......没有人能听到你在网络空间的尖叫。;)
0赞
Abhishek Kaushik
6/23/2014
纨绔子弟。。!寒意。。!现在很好..!我修好了。无论如何谢谢..!
评论
$_POST
if (count($_POST) > 0)