将新id /类分配给列表项

时间:2014-01-07 09:04:34

标签: javascript php jquery jquery-ui-sortable

我正在使用一个Jquery Sortable列表,它将两个项目相互替换。每个<li>都有一个唯一的idname,这些值是从php文件中获取的。

HTML示例:

<ul id="sections" class="ui-sortable">
   <li id="one" name="one" value="<?php echo $forms[0]; ?>" class="<?php echo $forms[0]; ?>">one</li>
   <li id="onea" name="one_a" value="<?php echo $forms[1]; ?>" class="<?php echo $forms[1]; ?>"> two</li>
   <li id="oneb" name="one_b" value="<?php echo $forms[2]; ?>" class="<?php echo $forms[2]; ?>">three</li>
   <li id="two" name="two" value="<?php echo $forms[3]; ?>" class="<?php echo $forms[3]; ?>"> four  </li>
   <li id="twoa" name="two_a" value="<?php echo $forms[4]; ?>" class="<?php echo $forms[4]; ?>">five</li>
   <li id="twob" name="two_b" value="<?php echo $forms[5]; ?>" class="<?php echo $forms[5]; ?>"> six </li>
</ul> 

include()php文件(示例):

<?php
$forms = array('fish','bird','tiger','dog','cat','elephant');
?>

现在使用$( "#sections" ).sortable({...方法,我可以将<li>six</li>替换为<li>two</li>。在这种情况下,这意味着将bird换成elephant

问题是当我在<form>应用程序中使用它时,POSTexample.php文件用于$_POST文件,$_POST['one-a'];变量将发布其原始订单。

因此,在这种情况下,bird仍然会返回elephant而不是id。我在浏览器上使用了inspect元素,发现name#onea随着交换而移动。因此#twobid移动了。

我想要做的是保持namevalue订单到位,并且在进行交换时只更改elephant

因此,在此方案中,id将针对onea的{​​{1}}和name的{​​{1}}发布。

这可能吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我能够利用解决方法来获取当前value。使用Jquery和$.ajax()我在各种data语句后发布了if/else

所以基本上就是这样的事情;

JS:

var firstone = $('#sections #one');
var firstoneextra = firstone.hasClass("ui-selected");

if (firstoneextra){
    var newone = //take the new selected value.
}else{
    var newone = //keep the value it has already.
}...

以及通过$.ajax()调用处理数据的时间;

(样品):

data: 'one=' + newone ...

如果选择了新值,则会POST,或者POST已经开始使用的值。