排序列表而不刷新页面

时间:2011-07-09 15:30:28

标签: php javascript

我有以下代码:

  <table border="0" width="100%"><tbody>
     <tr>
        <th style="text-align: center;"><?php echo $text['PLAYERS']; ?></th>
     </tr>
     <tr>
        <td>
        <select name="order" size="1" onchange="sortPlayers(this)">
           <option value="name"><?php echo $text['NAME']; ?></option>
           <option value="age"><?php echo $text['AGE']; ?></option>
           <option value="ss"><?php echo $text['SS']; ?></option>
           <option value="experience"><?php echo $text['EXPERIENCE']; ?></option>
           <option value="leadership"><?php echo $text['LEADERSHIP']; ?></option>            
           <option value="weight"><?php echo $text['WEIGHT']; ?></option>             
           <option value="height"><?php echo $text['HEIGHT']; ?></option>       
           <option value="stamina"><?php echo $text['STAMINA']; ?></option>             
           <option value="strength"><?php echo $text['STRENGTH']; ?></option>             
           <option value="breakthroughs"><?php echo $text['BREAKTHROUGHS']; ?></option>
           <option value="tackling"><?php echo $text['TACKLING']; ?></option>
           <option value="handling"><?php echo $text['HANDLING']; ?></option>             
           <option value="speed"><?php echo $text['SPEED']; ?></option>
           <option value="kicking"><?php echo $text['KICKING']; ?></option>
        </select>
        </td>
     </tr>   
     <?php foreach ($result as $player) { ?>
     <tr>
        <td style="text-align: left;"><?php echo $player['male'] . ' ' . $player['name']; ?></td>
     </tr>
     <?php } ?>
  </tbody></table>

它为在线游戏中的每个用户玩家生成一个列表。 我希望当用户从下拉菜单中选择某些内容时,玩家将根据所选内容(强度,速度等)进行排序。 我有一个功能来获得玩家:get_players($ tid,$ sort)。 $ tid =用户ID $ sort =排序标准(速度,踢腿等)。

什么是JavaScript代码来获取在该输入中选择的内容,并根据该输入中的选择更改变量$ result,但不刷新页面。

1 个答案:

答案 0 :(得分:1)

如果我理解了正确的愿望,你希望观众能够选择一个选项(姓名,年龄,ss,经验等......),然后根据选择的属性和你的不同显示不同的排序结果想要在不刷新页面的情况下这样做。

从设计的角度来看,您有两种方法可以选择。您可以在初始页面(在Javascript数据结构中)包含所有选择的所有可能数据。然后,只需要一些javascript代码就可以从数据结构中获取正确的数据,对其进行排序并将其插入到DOM中进行显示。

或者,如果您不预先包含所有数据,则必须进行ajax调用以获取所需数据,对其进行排序,然后将其插入DOM。您在代码中显示的PHP现在看起来只包含播放器的名称。

哪种方式真正取决于数据的规模。如果它是可管理的(从生成页面和浏览器内存消耗的角度来看)只包括原始页面中的所有数据,那么更容易编码。但是,您必须查看最大数量的玩家,您支持的最大属性数。如果这不可管理,那么您将需要支持ajax调用,该调用可以返回已选择的给定属性的JSON数据。