2010-07-09 61 views
0

如何使響應結果在sEcho變得不爲零?修改腳本後,schocho結果不一樣

{"sEcho": 0, 

我已經使用這個代碼,但結果仍然是零..

$sOutput .= '"sEcho": '.intval($_POST['sEcho']).', '; 
+1

我不確定你在問什麼。 'intval(postVar('scho'))'返回零,所以你得到零。也許如果你看看爲什麼它返回零,你會找到你的答案?另外,它看起來像你在建立JSON。 ['json_encode'](http://us2.php.net/manual/en/function.json-encode.php)是你的朋友。 – Charles 2010-07-09 02:25:09

+1

'$ sOutput。='「sEcho」:1,';'?另外,當你有庫爲你做時,這是一個非常可怕的方式來生成JSON。 – 2010-07-09 02:27:38

+1

這看起來像從http://datatables.net/examples/data_sources/server_side.html – Amber 2010-07-09 02:31:15

回答

0

好了,時間提升到這樣一個答案。

$sOutput .= '"sEcho": '.intval(postVar('sEcho')).', '; 

這條線發生的功能postVar,輸出給定的paramater 'sEcho'時,然後採取該結果,並運行它通過內置函數intval

然後,該整數是使用.連接運算符的字符串'"sEcho":',然後將其附加到可變$sOutput

intval所附打開任何它被傳遞到一個整數。這就像鑄造。幾乎任何字符串都變成了零。 intval('YOUR FACE IS ON FIRE')將返回0,intval('')將返回0,等等

我不知道在哪裏postVar是,但下注基礎上,provided example code link,它的一些考慮不周的包裝器$_POST我要去。因此,另一種方式把它寫可能是:

$sEcho = (int)$_POST['sEcho']; 
$sOutput .= '"sEcho": ' . $sEcho . ', '; 

的底線是東西傳遞給intval變成零。很有可能名爲「sEcho」的輸入不是一個可以變成零的字符串。

這就是你的零來自的地方。

要解決這個問題,你需要傳遞一些信息給intval,它不會變成零。作爲一個側面說明,如果你實際使用鏈接的示例代碼,你應該知道所討論的代碼是完整的,完全的垃圾。它充滿了不好的做法,如持續連接,使用過時的mysql擴展,手動組裝JSON字符串,以及恐怖的恐怖,匈牙利表示法的思想糟糕的想法。嚴重的是,scho是一個被轉換爲整數的東西?那麼它不是iEcho嗎?嘆。