PHP POST悖论错误

时间:2011-11-18 12:57:08

标签: php wordpress

我正在使用wordpress进行项目,我注意到一个不寻常的条件矛盾。

<li class="<?php echo (isset($_REQUEST['search']) && $_REQUEST['search']!='opportunities')? 'active':''; ?>"><a href="#tabs-1" >People</a></li>
<li class="<?php echo (isset($_REQUEST['search']) && $_REQUEST['search']=='opportunities')? 'active':''; ?>"><a href="#tabs-2">Opportunities</a></li>

所以当我提交表格时,我会得到以下内容。

$_POST['search'] =>'opportunities'

这对我来说是不合逻辑的,只是想知道是否有人遇到过此事,并且可能有所帮助。

更新:抱歉,我的不好......

这就是我回来的原因

<li class="active"><a href="#tabs-1" >People</a></li>
<li class="active"><a href="#tabs-2">Opportunities</a></li>

这是悖论,他们怎么都有活跃的类?

我也使用$_POST代替$_REQUEST仅用于记录。

更新2

经过一些更多的测试,以及稍后的敲击......

这种悖论只发生在$_POST['search']='opportunities'

2 个答案:

答案 0 :(得分:2)

它基本上说,如果搜索不是“机会”,那么人们就会很活跃。 如果搜索是“机会”,那么机会就会激活。

这实际上是说,人们应该是默认选项卡,如果设置了其他任何选项卡,请将它们设为活动状态。你只有一个标签,所以令人困惑。

如果你有更多的标签,那么它就是伪代码的样子。

(!in_array($_POST['search'], array('a', 'b', 'c')) ? 'active' : ''
$_POST['search'] == 'a' ? 'active' : ''
$_POST['search'] == 'b' ? 'active' : ''
$_POST['search'] == 'c' ? 'active' : ''

这是通过使用Ternary If来分配CSS类来完成的。

$name = (condition) ? (if true) : (if false);

答案 1 :(得分:0)

这只是我的愚蠢,我的浏览器似乎太快了,

问题出现在一个jquery脚本上,它会自动使第一个标签处于活动状态,这也就是为什么它们都是活动的......而且我没有这样做解释了所有这些...

$('.tabs li').eq(0).addClass('active');

谢谢你们,有时简单的事情,就像这样,让你想尖叫:)