我已经尝试了一段时间来动态排序我的php结果,但是对于某些原因,它只是没有做任何事情,如果我尝试更改下拉列表中的排序字段,没有任何反应,我不能搞清楚。
这是php代码
$sortorder = "ASC";
$sortfield = "addon_name";
if(isset($_GET["sortorder"])) {
$sortorder = $_GET["sortorder"];
}
if(isset($_GET["sortfield"])) {
$sortfield= $_GET["sortfield"];
}
$small_statement = "`addons` WHERE addon_size='small' ORDER BY $sortfield $sortorder";
这是html代码
<select name="sortorder" onChange="MM_jumpMenu('parent',this,0)">
<option value="?sortorder=ASC">Ascending</option>
<option value="?sortorder=DSC">Descending</option>
</select>
<select name="sortfield" onChange="MM_jumpMenu('parent',this,0)">
<option value="?sortfield=addon_name">Name</option>
<option value="?sortfield=addon_rank">Rank</option>
</select></div><!---end browse_header--->
<div id="small" class="tab_content">
<?php
$browse_small_query = mysql_query("SELECT * FROM {$small_statement} LIMIT {$startpoint_small} , {$limit}");
while($row_small = mysql_fetch_assoc($browse_small_query)) : ?>
<?php extract($row_small);?>
<div class="addon_wrapper" onclick="location.href='addon_detail.php?eid=<?php print "$estate_id";?> &aid=<?php print "$addon_id";?>';"><div class="addon_header"><?php print "$addon_name";?><?php print "$addon_id";?></div><!---end addon_wrapper---><div class="addon_browse_image"></div><!---end addon_browse_image---></div><!---end addon_wrapper--->
<?php endwhile ?>
感谢您提供的任何帮助
答案 0 :(得分:0)
您的<option>
有错误的值。您不需要变量的名称,因为<select name="XXX"
暗示了这一点。值应为
<option value="ASC">Ascending</option>
<option value="DESC">Descending</option>
与其他两个相似。
您也可以通过检查$_GET
内的值来自行调试。
最后,此代码容易受到SQL注入,因为任何人都可以提交具有两个参数所需值的请求。您应该使用白名单或使用其中一个standard defensive approaches来保护自己。