我不確定哪個部分導致頁面響應沒有任何內容。這些頁面是我的lubuntu機器中的主機。但是,當我從另一臺LAN計算機訪問此頁面時,選擇startDate爲「2012-12-16」,endDate爲「2013-12-16」,該頁面僅在Chrome瀏覽器中凍結。任何想法,當它凍結? 當我打電話給$.get('duty.php'...
時,警報甚至不能彈出。 當我去到挺直php頁面無響應
/attendence/duty.php?mode=9 &的startDate = 2012年12月6日結束日期& = 2013年12月6日&命名=所有
回報是
[]
* 編輯2 * 找到原因,它變成另一個「愚蠢」的問題。這個問題是由$.get()
造成的。正如你可以看到從PHP的輸出是一個空數組[]
,這沒關係。然而,$.get()
函數沒有看到它是一個有效的響應,只是等到瀏覽器超時。(使用jQuery 1.7.2)解決方法是返回json的一些內容,如{'no','result'}
。
的Apache2的access.log
192.168.1.7 - - [06/DEC/2012:21:02:48 0800]「GET /attendence/duty.php?mode=9 &的startDate = 2012 -12-06 & endDate = 2013-12-06 & christened =所有HTTP/1.1「500 411」 - 「」Mozilla/5.0(X11; Linux i686)AppleWebKit/535.19(KHTML,如Gecko)Ubuntu/11.10 Chromium/18.0 .1025.168鉻/ 18.0.1025.168 Safari瀏覽器/ 535.19"
$.get('duty.php',
{'mode':9,
'startDate':$('input[name=startDate]').val(),
'endDate':$('input[name=endDate]').val(),
'christened':$('input[name=christened]:checked').val()},
function(data, textStatus, jqXHR){
alert('result reach back');
if (typeof data === 'undefined') {
return;
}
numWeek = getDiffWeek();
tableHtml='Num Of week:'+numWeek+'<table border=1><tr>';
tableHtml+='<td>Barcode</td><td>name</td><td>attendence</td><td>frequency</td>';
tableHtml+=' </tr></table>';
$('#attendenceRate').html(tableHtml);
for(name in data){
attendenceRate = Math.round(data[name]['times']/numWeek*100);
memberIcon ='';
$('#attendenceRate table').append('<tr><td>'+data[name]['barcode']+'</td><td>'+name+'</td><td>'+attendenceRate+'%</td><td>'+data[name]['times']+'</td></tr>');
}
}
,'json'
);
編輯只是一個錯字,應該是duty.php,而不是Duty.php
include ("lock.php");
if($_GET){
if ($_GET['mode']==9){//calculate overall christian attendence
$startDate = $_GET['startDate'];
$endDate = $_GET['endDate'];
$christened=$_GET['christened'];
if($christened=='All'){
$christenedClause='';
}else{
$christenedClause= ' AND record.christened = '.$christened;
}
$sql = <<<EOD
SELECT name,barcode, COUNT(*) AS times ,christened,gender
FROM (
SELECT name,attendence.barcode as barcode, DATE, TIME,christened,gender
FROM attendence, record
WHERE attendence.barcode = record.barcode
AND DATE
BETWEEN "$startDate"
AND "$endDate"
$christenedClause
GROUP BY name, DATE
)A
GROUP BY name
EOD;
$result = $link->query($sql);
$data = array();
$i=0;
if($result->num_rows>0){
while ($result2 = $result->fetch_assoc()){
$data[$result2['name']]['times'] = $result2['times'];
$data[$result2['name']]['barcode'] = $result2['barcode'];
$data[$result2['name']]['gender'] = $result2['gender'];
$data[$result2['name']]['christened'] = $result2['christened'];
$i++;
}
}
echo json_encode($data);
}
}
嘗試在Chrome的開發人員工具中跟蹤響應。請注意HTTP狀態碼。 – Raptor
發現更多問題:(1)不建議在'duty.php'中使用HEREDOC作爲SQL語句; (2)SQL包含太多的MySQL保留字; (3)在@marteljin建議的Ubuntu環境(4)中,duty.php!= Duty.php,'if'情況應該執行數據類型檢查。 – Raptor
當我用ajax函數提交時,頁面剛剛凍結,在開發工具中沒有更多的更新。我只能跟蹤服務器上的apache日誌 – metro