我有这样的下拉:
<select id="fieldnames" name="fieldnames[]" size="4" multiple="multiple">
<option value="id">id</option>
<option value="FN">FN</option>
<option value="N_FAMILY">N_FAMILY</option>
<option value="N_GIVEN">N_GIVEN</option>
</select>
我想通过点击对所选值进行排序。例如,如果我单击N_GIVEN,那么id,默认情况下它将按如下方式排序:
Array ([0] => id [1] => N_GIVEN )
我希望像这样排序
Array ([0] => N_GIVEN [1] => id )
任何人都知道怎么做?
答案 0 :(得分:3)
我有一个解决您问题的方法。尝试多个复选框而不是选择框。并调用一个函数onclick,它在一个hiddenbox中分配一个订单值。在您的PHP脚本中,使用该隐藏框的引用来安排该值。你可以试试这个小例子。
<script>
function set_order(val)
{
var order_val = document.getElementById('order_val').value;
if(order_val=="")
{
order_val = val;
}
else
{
order_val = order_val+","+val;
}
alert(order_val);
document.getElementById('order_val').value = order_val;
}
</script>
<input type="text" name="order_val" id="order_val">
<input type="checkbox" name="fieldnames[]" value="id" onclick="set_order(this.value)" /> <label>id</label>
<input type="checkbox" name="fieldnames[]" value="FN" onclick="set_order(this.value)" /> <label>FN</label>
<input type="checkbox" name="fieldnames[]" value="N_FAMILY" onclick="set_order(this.value)" /> <label>N_FAMILY</label>
<input type="checkbox" name="fieldnames[]" value="N_GIVEN" onclick="set_order(this.value)" /><label>N_GIVEN</label>
在这里,您必须修改脚本位以取消选中事件。在未选中时,您必须从列表中删除该值。希望它会对你有所帮助。