jquery 未定义的索引: AJAX POST和/或php脚本出错?

6jjcrrmo  于 2022-11-22  发布在  jQuery
关注(0)|答案(5)|浏览(134)

我 尝试 向 php 文件 发送 ajax POST , 然而 php 文件 发送 了 一 个 " 未 定义 索引 " 的 通知 , 而且 php 文件 似乎 从来 没有 收到 我 试图 发送 的 值 。 我 一直 在 寻找 为什么 这 不能 正常 工作 的 答案 , 所以 希望 有人 能 给 我 一些 见解 。
我 的 javascript 函数 从 html 接收 一 个 值 , 并且 接收 到 正确 的 值 。 ( 在 本 例 中 是 " 1 " )

function deleteMediaFromDatabase(val)
    {

  $.ajax({ url: 'deleteMediaFromDatabase.php',
         data: {vals : val},
         type: 'post',
         success: function(output) {
                      alert(output);
                  },
          error: function(request, status, error){
            alert("Error: Could not delete");
          }
  });
}

中 的 每 一 个
下面 是 我 的 php 文件 的 一 部分 , 应该 收到 后 :

<?php

 ini_set("display_errors", "On");
 error_reporting(E_ALL);

    $val = $_POST["vals"];

    // create connection
    $con = mysqli_connect(<stuff you don't care about>);

  error_log($val . ' is the value', 3, "./error.log");

?>

格式
但是 , 我 从 php 得到 这个 错误 信息 :
注意 : 未 定义 的 索引 :第 9 行 上 的/xxx/xxx/htdocs/管理 面板/从 数据 库 中 删除 媒体 . php 中 的 值
我 的 javascript 总是 在 错误 中 输出 警告 :" 错误 : 无法 删除 "
我 知道 这个 问题 已经 被 问 过 很多 次 了 , 但是 除非 我 跳过 一些 小 的 东西 , 否则 我 的 代码 对 我 来说 看 起来 是 正确 的 。 ( 但是 它 不 总是 ... )

gstyhher

gstyhher1#

jquery的语法有错误,遗漏了数据的语法,应该是这样的-

function deleteMediaFromDatabase(val)
{
$.ajax({ url: 'deleteMediaFromDatabase.php',
     data: {'vals' : val},
     type: 'post',
     dataType:'json',
     success: function(output) {
                  alert(output);
              },
      error: function(request, status, error){
        alert("Error: Could not delete");
      }
});
}
lzfw57am

lzfw57am2#

此问题可能是由于未指定dataType或指定的dataType不匹配而导致服务器返回。
明确设置dataType,例如dataType:'json'
并确保您的脚本返回的数据是以您选择的数据类型“编码”的,例如在PHP中:
echo json_encode($something);

ep6jt1vc

ep6jt1vc3#

而不是:

$val = $_POST["vals"];

使用以下命令:

if (isset($_POST['vals']) {
    $val = $_POST['vals'];
}
f87krz0w

f87krz0w4#

更改 AJAX 语法...

$.ajax({
    type: "POST",
    url: 'deleteMediaFromDatabase.php',
    data: {'vals' : val},//Have u tried this
    success: function(output) {
        alert(output);
    }
    error: function(request, status, error){
            alert("Error: Could not delete");
    }
);
vnzz0bqm

vnzz0bqm5#

$val = $_POST["vals"];

中 的 每 一 个
我 遇到 了 同样 的 问题 , 我 试 着 声明 变量 为 全局 变量 , 这 解决 了 我 的 问题 。

global $val;
 $val = $_POST["vals"];

格式
并 始终 检查 isset($_POST["vals"])

相关问题