我的页面上有一个$ _REQUEST变量跳转菜单,允许人们通过post_time更改ASC或DESC顺序。
问题是将默认设置变为DESC顺序并使其工作而不更改URL $ _REQUEST变量。
这就是我所拥有的:
跳转菜单:
<form name="form" id="form">
<select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
<option value ="?post_time=DESC"
<?php echo ($_REQUEST['post_time']=='DESC')?"selected":"";?> >DESC</option>
<option value ="?post_time=ASC"
<?php echo ($_REQUEST['post_time']=='ASC')?"selected":"";?> >ASC</option>
</select>
</form>
按条款排序:
ORDER BY post_time {$_REQUEST['post_time']}
就像我说的那样,如果你打开页面它会很好,但它默认为ASC,我试图在顶部将变量设置为=“DESC”并且它可以工作,但是它不会改变为ASC。
有什么快速的想法吗?
提前致谢!!
答案 0 :(得分:0)
你试过了吗?
<form name="form" id="form">
<select name="post_time" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
<option value ="DESC"
<?php if(($_REQUEST['post_time']=='DESC')||(!isset($_REQUEST['post_time']))){echo"'selected'";}?> >DESC</option>
<option value ="ASC"
<?php if($_REQUEST['post_time']=='ASC'){echo"'selected'";}?> >ASC</option>
</select>
</form>
答案 1 :(得分:0)
试
<option value ="DESC"
<?php if(isset($_REQUEST['post_time']) && $_REQUEST['post_time']=='DESC') { print " selected=\"selected\"";}?> >DESC</option>
<option value ="ASC"
<?php if(isset($_REQUEST['post_time']) && $_REQUEST['post_time']=='ASC') { print " selected=\"selected\"";}?> >ASC</option>
我也不建议你这样做:
ORDER BY post_time {$ _REQUEST ['post_time']}
尝试:
$order = 'ASC'; // Default
// Check for DESC as ASC is the default
if(isset($_REQUEST['post_time']) && $_REQUEST['post_time'] == 'DESC') {
$order = 'DESC';
}
ORDER BY post_time {$order}
我认为这个页面展示了你要完成的一个很好的例子:
答案 2 :(得分:0)
永远不要使用$ _REQUEST。这是一个床上练习。并且
ORDER BY post_time {$ _REQUEST ['post_time']}
也不是很好。不要忘记使用mysql_real_escape_string转义所有用户输入的数据。
以前的2个建议非常好,无需添加