我有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并直接转到其他地方。
有人可以查看我哪里错了。
答案 0 :(得分:1)
我认为你的ajax调用中有些变量是未定义的,试试这个:
$brandid = isset($_POST['bidg']) ? $_POST['bidg']: '';
$datebeg = isset($_POST['startg'])? $_POST['startg']: '';
$dateend = isset($_POST['stopg'])? $_POST['stopg']: '';
isset()用于检查变量是否已设置。这将从您的代码中删除错误。
要检查哪个变量未定义,请检查您的控制台或放置print_r($ _ POST),它将打印POST中可用的所有索引
答案 1 :(得分:0)
我建议你拿
data: {
'bidg' : brandid,
'startg' : datestart,
'stopg' : dateend
}
$.ajax
来电的对象,并在通话之前将其变为。
因此...
var _data = {'bidg' : brandid, 'startg' : datestart, 'stopg' : dateend};
console.log("data for ajax call", _data);
然后你的ajax调用变为
$.ajax({ url: 'ajax/datagenderfilter.php',
dataType:'json',
type: 'post',
data: _data,
// the rest of your code here
通过这种方式,您可以打开Web开发人员控制台,然后选择“保留日志”#39;即使您的页面转到其他位置,您也可以看到您的控制台日志。通过这种方式,您可以查看是否所有变量都按预期方式设置。
我必须同意其他人的观点,当你的PHP中的if语句到达时,你的vars中似乎有一个或多个vars未定义。通过这种方式,您可以检查数据在之前之前的。