2010-07-07 4 views
2

J'ai une liste comme ceci:jQuery/PHP - trier la liste html par les valeurs de tableau PHP?

<li> <input value="1" name="bla[]" /> </li> 
<li> <input value="2" name="bla[]" /> </li> 
<li> <input value="3" name="bla[]" /> </li> 

(toujours le même ordre)

et un tableau comme celui-ci

array('3', '1', '2'); 

mais l'ordre des valeurs dans le tableau peut changer à tout moment . La liste ci-dessus peut-elle être triée avec jQuery en fonction de l'ordre du tableau?

+0

pourquoi ne vous triez pas en php ?? – galambalazs

Répondre

2

Vous pouvez le faire côté client comme celui-ci, si PHP est pas une option (s'il vous plaît le faire en PHP, si possible, pas besoin de JavaScript dans ce cas):

var arr = ['3', '1', '2']; 
for(var i=0; i<arr.length; i++) { 
    $("ul li input[value='" + arr[i] + "']").parent().appendTo("ul"); 
}​ 

You can see a demo here


Bien que si vous n'avez pas réellement besoin de trier, vous ne pouvez pas juste définir ces valeurs sur les entrées dans une boucle? Cela suppose le code réel n'est pas beaucoup plus complexe que l'exemple, comme ceci:

var arr = ['3', '1', '2']; 
$("ul li input").val(function(i) { 
    return arr[i]; 
});​ 

You can try that version here

+0

+1 élégante réponse jQuery – galambalazs

+0

merci! J'ai décidé d'aller avec php après tout – Alex