在jQuery中执行AJAX请求时未定义的索引?

时间:2017-03-25 21:10:30

标签: javascript php jquery ajax

出于某种原因,当我在main.js文件中执行AJAX请求时,出现错误:

Undefined index: id in sqlinfo.php on line 13

而且我不确定为什么,因为我觉得我正在填写request对象。同样奇怪的是,这有效:

$requestType = filter_input(INPUT_POST, 'requestType', FILTER_SANITIZE_STRING);

那么为什么$_POST['id']不起作用?

如果有人能告诉我我正在犯的错误会很棒!

注意:我知道albumId有一个值,因为我已经使用console.log()来验证它是否有值。

代码

main.js

$(document).ready(function () {
$(".grid").on("click", ".edit", function (){
      var albumId = $(this).siblings(".grid-info").attr("id");
      var imageId = $(this).siblings("img").attr("id");
      var request = (albumId == '') ? {requestType: 'Album', id: albumId} : {requestType: 'Image', id: imageId};
      var getSQLInfo = $.ajax({
        url: '../P3_M2/ajax/sqlinfo.php',
        method: 'post',
        data: request,
        dataType: 'json',
        error: function(error) {
          console.log(error);
        }
        });

});

sqlinfo.php

<?php
require_once('../configsql.php');

$queryFor = array(
  'Album' => 'SELECT * FROM Album WHERE id = ?',
  'Image' => 'SELECT * FROM Image WHERE id = ?');

$requestType = filter_input(INPUT_POST, 'requestType', FILTER_SANITIZE_STRING);
  if (empty($requestType)) {
    echo 'Missing requestType.';
    die();
  }
$id = $mysqli->real_escape_string($_POST['id']); //getting undefined index id
?>

1 个答案:

答案 0 :(得分:0)

感谢@v Sugumar我在分配GoogleRefreshTokenClient时意识到我有错误的布尔值(==)。将其更改为request修复它:

!=