Ändern Sie das Order Array, wenn Sie sortable () (jqueryUI) verwenden.

  • Ich habe eine Liste, die ich dank der sortierbaren Funktion von jQueryUI sortieren würde:

         <ul id="list-cat">
            <li id="cat_0" >Coach</li>
            <li id="cat_1" >Victory</li>
            <li id="cat_2" >Defeat</li> 
        </ul> 
     

    Mein Skript:

         $("#list-cat").sortable({ 
            placeholder: 'highlight',
            update: function() {  
                var order = $('#list-cat').sortable('serialize');           
                $.post("my url...",order); 
                alert(order);   // displays for example "cat[]=1&cat[]=0&cat[]=2"
            }
          });
     

    Meine URL erhält ein $ _POST ['cat'] - Array mit dem $ order als Schlüssel und $ id_cat als Wert. Ich muss den li-Wert (Coach, Victory usw.) anstelle von $ id_cat als Array-Wert verwenden, ist das möglich?

    22 November 2011
    Anon
1 answer
  • Ändern Sie Ihre IDs in cat_Coach, cat_Victory usw.

    Siehe jQuery-UI-Dokumente auf .sortable("serialize") :

    Serialisiert die Element-ID der sortierbaren Elemente in eine form / ajax-Zeichenfolge. Wenn Sie diese Methode aufrufen, wird ein Hash erstellt, der an jede URL angehängt werden kann, um eine neue Artikelreihenfolge einfach an den Server zurückzusenden.

    Standardmäßig wird die ID jedes Elements geprüft im Format 'setname_number', und es spuckt einen Hash wie "setname [] = number & amp setname [] = number" aus.

    Sie können auch einen Optionshash als angeben Zweites Argument, das definiert wird, wie die Funktion arbeitet. Die möglichen Optionen sind: 'key' (ersetzt part1 [] durch das, was Sie möchten), 'attribut' (testen Sie ein anderes Attribut als 'id') und 'expression' (verwenden Sie Ihren eigenen regulären Ausdruck).

    Wenn serialize eine leere Zeichenfolge zurückgibt, stellen Sie sicher, dass die ID-Attribute einen Unterstrich enthalten. Sie müssen die folgende Form haben: "set_number". Eine 3-Element-Liste mit den ID-Attributen foo_1, foo_5, foo_2 wird zu foo [] = 1 & amp; foo [] = 5 & amp; foo [] = 2 serialisiert. Sie können einen Unterstrich, ein Gleichheitszeichen oder einen Bindestrich verwenden, um Satz und Zahl voneinander zu trennen. Beispiel: foo = 1 oder foo-1 oder foo_1 werden alle zu foo [] = 1 serialisiert.

    22 November 2011
    gilly3