用javascript命令“选择”条目?

用javascript命令“选择”条目?,javascript,jquery,mysql,html,Javascript,Jquery,Mysql,Html,我想知道我该如何使用一个高度可能为4或5的选择框,旁边有一个上下箭头来排序条目?问题是,我需要用PHP从数据库中提取条目,用方框排序,然后将它们提交回数据库。所以这不仅仅是一种美学上的改变,它还必须改变它们的身份?这可能吗 干杯, 黑鬼 ~z~编辑~ 这是我想要使用的代码,我只想能够重新排列条目并记录条目的新顺序 <select size="4"> <option value='1'>1</option> <option value='2

我想知道我该如何使用一个高度可能为4或5的选择框,旁边有一个上下箭头来排序条目?问题是,我需要用PHP从数据库中提取条目,用方框排序,然后将它们提交回数据库。所以这不仅仅是一种美学上的改变,它还必须改变它们的身份?这可能吗

干杯, 黑鬼

~z~编辑~ 这是我想要使用的代码,我只想能够重新排列条目并记录条目的新顺序

<select size="4">
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    <option value='7'>7</option>
</select>

<br>
<br>
<input type="button" value="Up">
<br>
<input type="button" value="Down">
你在找这个吗?

例如,不知道您有什么类型的选择框

<div><input type='text' value='1' name='field[]' />
     <span class='up'>Up</span><span class='down'>Down</span></div>
<div><input type='text' value='2' name='field[]' />
     <span class='up'>Up</span><span class='down'>Down</span></div>
<div><input type='text' value='3' name='field[]' />
     <span class='up'>Up</span><span class='down'>Down</span></div>
<div><input type='text' value='4' name='field[]' />
     <span class='up'>Up</span><span class='down'>Down</span></div>
<div><input type='text' value='5' name='field[]' />
     <span class='up'>Up</span><span class='down'>Down</span></div>
<div><input type='text' value='6' name='field[]' />
     <span class='up'>Up</span><span class='down'>Down</span></div>
<div><input type='text' value='7' name='field[]' />
     <span class='up'>Up</span><span class='down'>Down</span></div>
另一种解决方案是只移动值,而不移动标记:


您可以使用现成的jQuery UI Sortable控件来实现这一点:

我的ObjectCollectionOrdered组件中有一个例子,它基本上是一个数组抽象,使管理有序对象的集合变得简单:

示例如下:

它基本上只是将选项对象加载到一个集合中——这使您能够非常简单地访问它们,对它们进行各种移动和排序。然后有一个简单的函数来重画select

条目的顺序保存在集合中,以便随时访问

如果您已经在使用一个表单框架,那么大多数表单框架都有这个内置框架——但是如果您想将它快速添加到普通代码中,这应该可以做到。如果你需要更简单的东西,你可以从这个组件中去掉不需要的东西


希望这有帮助。

我决定使用jQuery的“sortable”函数。感谢所有帮助过你的人

这也许是可能的,但你到目前为止做了哪些尝试?有代码吗?@elclanrs:还没有,我不知道从哪里开始。我认为使用数组可以帮助你参考这个网站,我没有尝试过任何代码,但你可以从这里开始,做一些东西,然后我们可以深入你的工作。嘿,看起来不错,但不是我想要的。寻找更像这样的东西,但功能@BlackWraith举了一个例子。如果您想用select替换输入-完全没有问题。只需将select的名称保留为array name='some_name[]'。或者你有别的东西吗?更改ID的方法与上一个示例中移动值的方法相同。我尝试的目标是您对单个输入框所做的操作,所有操作都在一个选择框内。因此,我可以在单个选择框中重新排列条目。这可能吗?我知道我很久以前看过了,但我想不出在哪里,或者搜索什么来查找示例。@BlackWraith那么,您是否有一个开放的选择,其中可能有多个选择?你只想上下移动它的选项?关于元素顺序的哪些信息将提交到服务器?不,只是单个选择,只是上下,以及它们的位置。我喜欢jQuery,我会使用它,除了我的列表将有近40个条目,把他们拖来拖去将是一场噩梦:/很抱歉回复太晚,但我忘了回去。这真是太棒了,谢谢你的建议。这看起来很有希望,我会努力的。谢谢:
$('.up').css('cursor','pointer').click(function(){
  $(this).parents('div').insertBefore($(this).parents('div').prev());
});

$('.down').css('cursor','pointer').click(function(){
  $(this).parents('div').insertAfter($(this).parents('div').next());
});
$('.up').css('cursor','pointer').click(function(){
  var prev = $(this).parents('div').prev().find('input'), oldval = prev.val();
  prev.val($(this).siblings('input').val());
  $(this).siblings('input').val(oldval);
});

$('.down').css('cursor','pointer').click(function(){
  var next = $(this).parents('div').next().find('input'), oldval = next.val();
  next.val($(this).siblings('input').val());
  $(this).siblings('input').val(oldval);
});