根据所选的排序动态更改结果

时间:2012-06-27 22:13:17

标签: php javascript mysql html

我已经尝试了一段时间来动态排序我的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 ?>

感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

您的<option>有错误的值。您不需要变量的名称,因为<select name="XXX"暗示了这一点。值应为

<option value="ASC">Ascending</option>
<option value="DESC">Descending</option>

与其他两个相似。

您也可以通过检查$_GET内的值来自行调试。

最后,此代码容易受到SQL注入,因为任何人都可以提交具有两个参数所需值的请求。您应该使用白名单或使用其中一个standard defensive approaches来保护自己。

相关问题