好的,我在这里的十字路口。由于某种原因,我有一个页面,可以看到某个$ _POST索引,但看不到它。
我正在使用jquery脚本加载一个div,这里的页面是我的函数。
function custom() {
var type = getType();
var start = $("#startdatepicker").val();
var end = $("#enddatepicker").val();
alert(type+start+end);
$(".reports").load("fragments/report.php", { type: type, frame: "custom", start: start, end: end });
}
函数中的警报显示我的每个变量都已设置。
在页面顶部,我在$ _POST上放了一个foreach循环来记录数组的内容。
if(!empty($_POST)){
foreach($_POST as $key=>$post){
error_log($key."--".$post);
}
}
我在日志中得到了这个
[Tue Nov 19 09:01:04 2013] [error] [client 10.20.30.83] type--program, referer: https://xxxxxxxx.local/report/Dashboard/?page=report
[Tue Nov 19 09:01:04 2013] [error] [client 10.20.30.83] frame--custom, referer: https://xxxxxxxx.local/report/Dashboard/?page=report
[Tue Nov 19 09:01:04 2013] [error] [client 10.20.30.83] start--11/11/2013, referer: https://xxxxxxxx.local/report/Dashboard/?page=report
[Tue Nov 19 09:01:04 2013] [error] [client 10.20.30.83] end--11/12/2013, referer: https://xxxxxxxx.local/report/Dashboard/?page=report
[Tue Nov 19 09:01:04 2013] [error] [client 10.20.30.83] start--11/11/2013, referer: https://xxxxxxxx.local/report/Dashboard/?page=report
[Tue Nov 19 09:01:04 2013] [error] [client 10.20.30.83] end--11/12/2013, referer: https://xxxxxxxx.local/report/Dashboard/?page=report
请注意,我的索引不仅存在,而且还有一个额外的开始和结束索引。不知道为什么,但这是我最不担心的问题。
现在在同一个请求上进一步查看同一个report.php页面。像任何其他有头脑的编码器一样,我检查索引是否设置并且它等于我想要它(我已经知道它),但是if语句没有传递它的条件语句。我总是得到我的失败字符串。
if(isset($_POST["type"]) && $_POST["type"]=="program"){
}else{
echo "fail";
}
如果我删除了isset()条件,我会收到类型的未定义错误。
我还想指出在另一个jquery函数中,我使用相同的代码行来加载load()减去开始和结束参数,它就像一个魅力。在建议之前,是的,我确实从失败的实例中删除了开始和结束参数,但这并没有解决问题。
感谢任何帮助。
编辑:这是我的整个report.php。我很确定我没有重新定义或清空$ _POST。
<?php
if(!empty($_POST)){
foreach($_POST as $key=>$post){
error_log($key."--".$post);
}
}
if(empty($_POST)){
echo "<div class=\"stale\">
<p>
<h3>
<span>Select your parameters from the right.</span>
</h3>
</p>
</div>";
}elseif(isset($_POST["type"]) && $_POST["type"]=="rep"){
require_once("../functions/reps.php");
$frame=$_POST["frame"];
if($frame=="week"){
// get previouse week
}elseif($frame=="month"){
// get previouse month
}elseif($frame=="ptd"){
// get program to date
}elseif($frame=="custom"){
// get custom range
}
}elseif(isset($_POST["type"]) && $_POST["type"]=="program"){
require_once("../functions/programs.php");
$frame=$_POST["frame"];
$groups=getGroups();
$programs=getPrograms();
if($frame=="week"){
// get previouse week
// totals
// charts
// tables
echo "<div class=\"table-container\"><div class=\"custom-table\">
<table>
<tr>
<td>Program</td>
<td>Answered Calls</td>
<td>Abandoned Calls</td>
<td>Average Speed of Answer</td>
<td>Average Length of Calls</td>
<td>Average Wait Time</td>
</tr>";
foreach($groups as $group){
$showGroup=false;
foreach($programs as $program){
$programGroup=$program["group_name"];
$included=$program["calculate"];
if($programGroup==$group && $included){
$showGroup=true;
}
}
if($showGroup){
echo "<tr>
<td class=\"groupname\" colspan=6>$group</td>
</tr>";
}
foreach($programs as $program){
$programName = $program["display"];
$programGroup=$program["group_name"];
$included=$program["calculate"];
$id=$program["account_id"];
if($programGroup==$group && $included){
$answered=getLastWeekAnsweredCalls($id);
$abandoned=getLastWeekAbandonedCalls($id);
$abandonedPercent=$abandoned/$answered*100;
echo "<tr>
<td>$programName</td>
<td>".$answered."</td>
<td>".$abandoned." (".round($abandonedPercent,2)."%)</td>
<td>".gmdate("H:i:s", getLastWeekASA($id))."</td>
<td>".gmdate("H:i:s", getLastWeekALC($id))."</td>
<td>".gmdate("H:i:s", getLastWeekACW($id))."</td>
</tr>";
}
}
}
echo "</table>
</div></div>";
// pivots
// charts
// tables
}elseif($frame=="month"){
// get previouse month
}elseif($frame=="ptd"){
// get program to date
}elseif($frame=="custom"){
$start=$_POST["start"];
$end=$_POST["end"];
// get custom range
// totals
// charts
// tables
// pivots
// charts
// tables
}
}else{
echo "fail";
}
?>
答案 0 :(得分:1)
我的问题是,当我点击提交按钮时,我正在调用两个函数。我曾经一次使用不同的处理方法,忘了删除旧的方法。
以下是我的按钮所在的代码。
<form method="POST" id="filter-form" onsubmit="submit_form();"> // This was the culprit
<p>
Start Date<input name="start" type="text" id="startdatepicker" />
</p>
<p>
End Date<input name="end" type="text" id="enddatepicker" />
</p>
<button class="button" onclick="custom()">Submit</button>
</form>
这是它需要的东西
<p>
Start Date<input name="start" type="text" id="startdatepicker" />
</p>
<p>
End Date<input name="end" type="text" id="enddatepicker" />
</p>
<p>
<button class="button" onclick="custom()">Submit</button>
</p>
</p>
谢谢大家的帮助。