【问题标题】:Javascript & PHP ajax error: "Undefined array key"Javascript & PHP ajax 错误:“未定义的数组键”
【发布时间】:2021-12-29 21:46:12
【问题描述】:

这几天我一直面临 PHP 找不到我的索引的问题。

我的尝试:

  • 在 ajax 中更改数据名称
  • 我将 PHP Create.php 中的代码添加到 create.php(在代码的开头和结尾)
  • 各种 ajax 可能性

目标

我想在 SQL 服务器上使用 PHP 保存已裁剪的图像 (cropper.js)。

我的代码:

OnSetData.js

canvas = cropper.getCroppedCanvas({
  width:700,
  height:700
});

canvas.toBlob((blob) => {
  url_img = URL.createObjectURL(blob);
  //url_img = blob:https://localhost/a37a7cd8-ad48...
  $.ajax(
  {
      url:'assets/php/PHPCreate.php',
      type: 'POST',
      data: {'image':url_img}, 
      success:function(output) {
        console.log('Upload success: ' + output);
        //Upload sucess: <output is empty>
      },
      error() {
        console.log('Upload error');
      },
    });
  }, 'image/png');

PHPCreate.php

if (isset($_POST['save_submit'])) 
{ 
  $data = $_POST["image"];
  //Warning: Undefined array key "image" in ..\assets\php\PHPCreate.php on line ..
  echo($data);
}

create.php

<link  href="assets/assets/cropperjs-main/dist/cropper.css" rel="stylesheet">
<script src="assets/assets/cropperjs-main/dist/cropper.js"></script>
    
<script src="assets/js/jquery.min.js"></script>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/OnSetData.js"></script>

<?php
  include './assets/php/PHPCreate.php';
?>
.
.
.
.
<form id="formUpload" action="" method="post" class="form-inline" enctype="multipart/form-data">

  <button class="btn btn-primary text-uppercase" role="button" name="save_submit" type="submit">Save</button>

</form>

【问题讨论】:

  • 您提供的代码中没有“save_submit”后置参数,这意味着您显示的 PHP 错误不可能来自您正在显示的 AJAX 调用。跨度>
  • 确切的错误信息是什么?由if (isset($_POST['save_submit'])) 控制的逻辑分支不应产生任何如上所述的结果,但同样应该文件不在$_FILES 数组中而不是$_POST 中?
  • 表单包含图像和保存按钮。

标签: javascript php html ajax cropperjs


【解决方案1】:

我想你会在浏览器中打开 create.php

create.php 有一个表单将“save_submit”作为新请求发送给 izself 所以 create.php 将再次打开,但这次使用“save_submit”,没有别的,所以是的,没有图像,这是正确的

现在让我们看看 OnSetData.js: 它使用“image”向 PHPCreate.php 发出单独的请求,但没有“save_submit”,因此 PHPCreate.php 什么也不做

清除:

  • 表单中的按钮将进行网站导航
  • OnSetData.js 会自行发出请求

两个请求分开处理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-16
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多