Post 请求中的未定义索引

Undefined Index in Post request

提问人:Abhishek Kaushik 提问时间:6/23/2014 最后编辑:Rory McCrossanAbhishek Kaushik 更新时间:6/23/2014 访问量:1111

问:

我不知道为什么我会得到这个奇怪的错误!

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>
php jquery ajax undefined-index

评论

0赞 6/23/2014
如果这都是一个文件,则在发送 POST 之前会被引用。在该块周围添加一个条件以检查$_POSTif (count($_POST) > 0)

答:

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
纨绔子弟。。!寒意。。!现在很好..!我修好了。无论如何谢谢..!