【问题标题】:AJAX data passed to PHP file gives 'Undefined Index" error传递给 PHP 文件的 AJAX 数据给出“未定义索引”错误
【发布时间】:2018-12-25 22:30:14
【问题描述】:

我有这个ajax sn-p 将数据传递给特定的php 文件。传递的数据是html element的名称

这是我的ajax 代码:

$(document).ready(function () {
    alert(imgno);
    $.ajax({
        url: 'includes/upload-ad-image-inc.php',
        type: 'post',
        dataType: "html",
             data: {
            imgno: imgno
        }
    });
});

imgno 的值将是:1,2,3,4,.....

这是我的 upload-ad-image-inc.php

$imageNO = $_POST['imgno'];

$sql = "UPDATE user SET userFName='$imageNO' WHERE  userid=1;";
mysqli_query($conn, $sql);

但我收到此错误消息 undefined index: imgno

但令人困惑的是,当我将 php 文件更改为另一个 php 时,我可以工作

有人可以帮帮我吗?

【问题讨论】:

  • "当我换成另一个php"是什么意思?
  • @charlietfl 当我创建一个新的 php 文件并将 url 更改为它时
  • 显然两者之间有一些我们当时看不到的不同
  • 也许是缓存?试试Ctrl + F5
  • @charlietfl 不,刚刚发现问题,我正在使用 2 个 ajax 函数访问同一个 PHP 文件。你能告诉我一个解决方案吗?

标签: javascript php ajax post


【解决方案1】:

终于找到了问题和解决办法:

当您有多个 ajax 函数调用同一个 PHP 文件时,它会抛出 undefined index 错误

要解决这个问题,请在 PHP 中使用 isset() 检查传递的数据

if (isset($_POST['imgno'])) { 
    $imageNO = $_POST['imgno'];

    $sql = "UPDATE user SET userFName='$imageNO' WHERE  userid=1;";
    mysqli_query($conn, $sql);
}

【讨论】:

  • 另外,为了避免SQL注入攻击,尽量使用“准备好的mysql查询”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 2022-06-10
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多