修改脚本后,sEcho结果不一样

时间:2010-07-09 02:17:20

标签: php jquery

如何使sEcho的响应结果变为非零?

{"sEcho": 0, 

我一直在使用这段代码,但结果仍为零..

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

1 个答案:

答案 0 :(得分:0)

好的,是时候把它提升到答案了。

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

当给定参数postVar时,该行获取函数'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字符串的手动组装,以及最恐怖的恐怖,这是一种经过深思熟虑的匈牙利表示法风格。说真的,sEcho是一个被转换为整数的东西?那不应该是iEcho吗?叹息。