javascript - Ajax在php中发布 undefined index

标签 javascript php jquery ajax

我有 2 个 php 文件。一个 Php 文件使用 ajax 将某些内容发布到另一个 php 文件。

假设 Php 1 名为 index.php,而另一个 php 名​​为 getsomething.php

这是我的带有ajax的index.php代码(这里只给出了部分代码)

$(function() {
  $("#datestart").on("change", function() {
     var d = new Date();
     var n = d.getFullYear();
     var dte = new Date(n, $(this).val(), 0).getDate();
     var datestart = n + "-" + $(this).val() + "-01 00:00:00";
     var dateend   = n + "-" + $(this).val() + "-" + dte + " 23:59:59";
     var brandid   = $('#txtbxbrandid').val();

     //-----GENDER----//
     $.ajax({ url: 'ajax/datagenderfilter.php',
         dataType:'json',
         type: 'post',
         data: {'bidg' : brandid, 'startg' : datestart, 'stopg' : dateend},

          success: function(output) {

          $('#chartContainergender').remove();
          $('#chartgender').append('<div id="chartContainergender" style="height: 300px; width: 100%;"></div>');
          var chartgender = new CanvasJS.Chart("chartContainergender",
            {
                title:{
                    text: "Pie chart filtered by Gender"
                },
                legend: {
                    maxWidth: 350,
                    itemWidth: 120
                },
                data: [
                {
                    type: "pie",
                    showInLegend: true,
                    legendText: "{indexLabel}",
                    dataPoints: output
                }
                ]
            });
            chartgender.render();
          },
          error: function(request, status, error){
            alert("Error: Could not delete");
          }
      });


   });
});

现在这是 getsomething.php

if (isset($_POST['bidg'])) {
$brandid = $_POST['bidg'];
$datebeg = $_POST['startg'];
$dateend = $_POST['stopg'];

echo json_encode($brandid, JSON_NUMERIC_CHECK);
}
else{
  echo json_encode("FAILED", JSON_NUMERIC_CHECK);
}

但是每次我尝试发布它时,getsomething.php 都会跳过 if 并直接转到 else。

有人可以检查一下我哪里出错了吗?

最佳答案

我认为您的 ajax 调用中某些变量未定义,请尝试以下操作:

$brandid = isset($_POST['bidg']) ? $_POST['bidg']: '';
$datebeg = isset($_POST['startg'])? $_POST['startg']: '';
$dateend = isset($_POST['stopg'])? $_POST['stopg']: '';

isset() 用于检查变量是否已设置。这将从您的代码中删除错误。

要检查哪个变量未定义,请检查控制台或输入 print_r($_POST),它将打印 POST 中可用的所有索引

关于javascript - Ajax在php中发布 undefined index ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094589/

相关文章:

javascript - R & 传单 : how to bind a client-side event to a polygon

php - 我如何在包含文件中包含 namespace ?

split - Split 函数(jquery)后使用索引吗?

javascript - 通过滑出一个新元素来替换一个元素

javascript - Chrome 控制台中无效 - 奇怪的 SyntaxError : Unexpected token }

javascript - 简单倒计时2

javascript - 在 TypeScript 中,定义可以返回 Promise<T> 或 Promise<T[]> 的函数的最佳方法是什么?

javascript - Google Calendar API 未经授权插入事件

php - 在上一次插入记录后,MySQL Execute 查询失败

javascript - 使用 Jquery 通过附加 <animate> 来更改 SVG 颜色,为什么它不起作用?