我知道我错过了什么。我的问题是ajax调用php脚本和php脚本可能需要几秒钟来收集信息。与此同时,触发了成功,让我在JS端没有任何信息。
我有一个$ .ajax如下:
$.ajax({
url: '/dash/assets/functions/canstat.php',
type: 'post',
data: {
recruiter: r,
status: s,
state: st,
type: t,
cstart: cdb,
cend: cde,
sort: sorto,
prescreener: p
},
success: function(data) {
try {
data = $.parseJSON(data);
$('#cont').html(display(data));
} catch (e) {
alert('Query produced results too large for your browser to display.');
}
}
});
返回php如下:
$result=$conn->query($sql);
while($row = $result->fetch_assoc()) {
$ar[$i]=$row;
$i++;
}
echo json_encode($ar);
现在有可能查询会很大,但仍需要显示 - 按要求。我确实给出了一个警告,例如phpMyAdmin在点击“全部显示”时给出的,表格可能会使浏览器崩溃。
我试过ob_start(); ob_end_flush()函数;不同的.ini设置。我甚至不知道要搜索什么。
我的系统是Centos 7上的PHP 5.6
我可以生成的所有PHP代码......
<?php
ob_start();
include_once('../../bs_config.php');
Log::info("REPORTS - Begin");
ini_set("output_buffering","32767");
$search="";
$order = "";
$recruiter=isset($_POST['recruiter'])?$_POST['recruiter']:'0';
$prescreener=isset($_POST['prescreener'])?$_POST['prescreener']:'0';
$status=isset($_POST['status'])?$_POST['status']:'';
$state=isset($_POST['state'])?$_POST['state']:'';
$cstart=isset($_POST['cstart'])?$_POST['cstart']:'';
$cend=isset($_POST['cend'])?$_POST['cend']:'';
$type=isset($_POST['type'])?$_POST['type']:'0';
$sort=isset($_POST['sort'])?$_POST['sort']:'0';
if ($recruiter > "1") {
$search=($search!="")? $search." owner = '$recruiter' AND" : "WHERE owner = '$recruiter' AND";
} else if ($recruiter=="1") {
$search=($search!="")? $search." owner NOT IN ('1251','1259','1267', '1264') AND" : "WHERE owner NOT IN ('1251','1259','1267', '1264') AND";
}
if ($prescreener > "1") {
$search=($search!="")? $search." PreScreener = '$prescreener' AND" : "WHERE PreScreener = '$prescreener' AND";
} else if ($prescreener=="1") {
$search=($search!="")? $search." PreScreener NOT IN ('Woodley, Gary','Follett, Bailey','') AND" : "WHERE PreScreener NOT IN ('Woodley, Gary','Follett, Bailey','') AND";
}
if ($status!="0") {
$search=($search!="")? $search." Status = '$status' AND" : "WHERE Status = '$status' AND";
}
if ($type!="0") {
switch ($type) {
case "1": $cos="Attorney"; break;
case "2": $cos="Legacy"; break;
case "3": $cos="Alliance America"; break;
case "4": $cos="IASAR"; break;
}
$search=($search!="")? $search." company = '$cos' AND" : "WHERE company = '$cos' AND";
}
if ($state!="") {
$state="'".$state."'";
if (strpos($state,',')) {
$state=str_replace(",","','",$state);
}
$search=($search!="")? $search." state IN ($state) AND" : "WHERE state IN ($state) AND";
}
// reset if opposite
if ($cend < $cstart) {
$cend="";
$cstart="";
}
if ($cend == "" && $cstart !="") {
$search=($search!="")? $search." date_created > '$cstart' AND" : "WHERE date_created > '$cstart' AND";
}
if ($cend != "" && $cstart =="") {
$search=($search!="")? $search." date_created < '$cend' AND" : "WHERE date_created < '$cend' AND";
}
if ($cend != "" && $cstart !="") {
$search=($search!="")? $search." (date_created BETWEEN '$cstart' AND '$cend') AND" : "WHERE (date_created BETWEEN '$cstart' AND '$cend') AND";
}
Log::info("Date Begin: ".$cstart);
Log::info("Date End: ".$cend);
// Clean last AND
$search = rtrim($search,' AND');
Log::info("REPORTS: Sort on:".$sort);
// Handle Sorting
switch ($sort) {
case "1":
$order = "ORDER BY last_name ASC";
break;
case "2":
$order = "ORDER BY last_name DESC";
break;
case "3":
$order = "ORDER BY first_name ASC";
break;
case "4":
$order = "ORDER BY first_name DESC";
break;
case "5":
$order = "ORDER BY state ASC";
break;
case "6":
$order = "ORDER BY state DESC";
break;
case "7":
$order = "ORDER BY date_created ASC";
break;
case "8":
$order = "ORDER BY date_created DESC";
break;
case "9":
$order = "ORDER BY date_modified ASC";
break;
case "10":
$order = "ORDER BY date_modified DESC";
break;
case "11":
$order = "ORDER BY Status ASC";
break;
case "12":
$order = "ORDER BY Status DESC";
break;
case "13":
$order = "ORDER BY company ASC";
break;
case "14":
$order = "ORDER BY company DESC";
break;
case "15":
$order = "ORDER BY PreScreener ASC";
break;
case "16":
$order = "ORDER BY PreScreener DESC";
break;
}
// reduce the number of columns to conserve memory
$cols = "candidate_id, last_name, first_name, city, state, zip, Status, owner, date_created, date_modified, company, PreScreener";
$ar = [];
$i=0;
$sql="SELECT $cols FROM candidate ".$search." ".$order;
Log::info("REPORTS - ".$sql);
$result=$conn->query($sql);
while($row = $result->fetch_assoc()) {
$ar[$i]=$row;
Log::dump($i,$row);
$i++;
}
echo json_encode($ar);
ob_end_flush();
?>