【问题标题】:Undefined Index in Post requestPost请求中的未定义索引
【发布时间】:2014-08-13 03:27:39
【问题描述】:

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

PHP 注意:未定义索引:/var/www/echo.php 第 5 行中的 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>

【问题讨论】:

  • 如果这只是一个文件,那么在发送 POST 之前会引用 $_POST。在该块周围添加条件以检查 if (count($_POST) &gt; 0)

标签: php jquery ajax undefined-index


【解决方案1】:

发生这种情况是因为您的变量未设置。使用isset

<?php

$rollUrl=34;
if(isset($_POST['refId'])) {
$refId=$_POST['refId'];
echo $refId;
}

?>

更新: 您应该将refId 作为名称属性分配给任何输入字段,以恢复用户的输入。

<input type="text" name="refId" />

【讨论】:

  • 不,那没有帮助..!它只是一个文件。
  • 检查输入字段的名称并确保您已将其设置为refId
  • 是的......!我没有任何输入字段。就是上面的代码。
  • 您应该将refId 定义为可以接收用户输入的任何字段的名称属性。查看我的更新答案
  • 我没有接受任何用户输入。我想在特定函数之后执行 ajax 调用。不需要输入。假设只发送一个密钥对值。它应该工作 r8?
【解决方案2】:

请看下面代码中的cmets:

<?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 正在执行时,这对我有用。

【讨论】:

  • 米勒..!我运行了您建议的相同代码..!事实上复制粘贴它..!但没有得到回声。 :(
  • 如果是在我编辑之前,请再试一次。我的系统上有名为 diff 的文件。如果是之后,请确保您在控制台中或将其更改为警报。
  • 是的..!我更改了文件名..!那是卵子。你得到回声值了吗??
  • “不工作”是“永远不工作”的唯一解释脚本确实按照您的要求“工作”,它确实返回已发布 refId。如果您在体验时遇到困难,则需要更多细节。顺便说一句:SO 上很少需要感叹号来表达你的观点……没有人能听到你在网络空间中尖叫。 ;)
  • 老兄..!寒意..!现在好了..!我修好了。无论如何谢谢..!
猜你喜欢
  • 1970-01-01
  • 2014-12-19
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 2016-02-13
  • 1970-01-01
  • 2020-10-26
相关资源
最近更新 更多