|
|
|
|
cocoLeNain, le dimanche 15 juillet 2007 à 21:20:06
<form action="creerPlaylist.php" method="post" enctype="multipart/form-data">
<select size="10" id="trackslist" name="trackslist[]" multiple>
<option value="1">Titre1</option>
<option value="2">Titre2</option>
<option value="3">Titre3</option>
</select>
<input type="submit" name="ajouter" value="Ok">
</form>
<?php
if(empty($_POST['trackslist'])){
echo "ERROR";
}else{
echo $_POST['trackslist'][0];
}
?>
Configuration: Linux Firefox 2.0.0.4
Si j'ai bien compris se que tu tente d'exprimer, je n'utilliserais pas [select] mais les checkbox. A toi de voir,... |
En gros, mon select représente une playlist c'est-à-dire une liste de titres de musique et pour moi pour représenter une liste en HTML, le mieux c'est un Select. |
Essaye en creant autant de champs cachés que de ligne options ? |
Ou alors dans un textarea a la place de la liste select avec un \n à la fin de chaque ligne, que tu ajoutes et enlèves après |
J'ai pensé à cette solution(celle avec les champs hiden), mais elle me ne plaît pas trop, c'est pas propre !
Mais si j'ai pas le choix, je ferai avec cette méthode. Merci quand même |
je ne comprend pas pourquoi tu n'utilise pas de checkbox...
en plus, tu peux tous les pré-cocher par défaut, en mettant checked="true" dans tes balises. Sinon, je ne comprend pas ce que tu cherches a faire :) et fais gaffe au moment de l'insertion a faire toutes les vérifications necessaires. |
Je ne veux pas utiliser des checkboxes car quand j'ajoute un titre à ma playlist(à la fin), je ne peux pas le faire changer de position c'est-à dire de le mettre par exemple en premier.
Dans le code que j'ai affiché plus haut, j'ai enlevé tous les verifications pour que le code soit clair. Et je pense avoir trouver une solution, quand je click sur le bouton ok, il faut qu'en javascript je sélectionne tous les elements du select et après j'appelle la page creerPlaylist.php avec la methode POST. |
j'utilise un select (vide au chargement de la page) où j'ajoute différentes valeurs.
Comment remplis tu ta liste ? avec Javascript ? Avec Php ? Tu peux créer à ce moment là un array qui sera posté ??? |
je le fais en javascript, mais comment peux tu envoyer un array javscript en POST ? |
essaye de mettre un champ caché que tu charges par javascript avec ton array
document.formulaire.champ.value= et tu récupéres ça en valeur postée html à tester ? sinon par javascript tu sélectionnes tous les <option de ta liste select avnt de poster ou alors tu utilises un texarea à la place de <select et pour faire les retours à la ligne par ton JS tu mets des \n ensuite côté php tu fais un split par apport à "\n" pour séparer ta liste dans un array Ce ne sont que des pistes |
Une petite fonction qui sélectionne tous les élémnts d'une liste
function PostSelect(nom_formulaire,id_adresse,id_liste){
// On compte le nombre d'item de la liste select
obj=document.getElementById(id_liste);
NbOption=obj.length;
//NbOption = document.forms[liste_adresse].elements.liste.length;
// On lance une boucle pour selectionner tous les items
for(a=0; a < NbOption; a++){
obj.options[a].selected = true;
//document.forms[liste_adresse].elements.liste.options[a].selected = true;
}
// On modifie l'ID du champ select pour que PHP traite cette dernière comme un array
obj.name = "liste[]";
//document.forms[liste_adresse].elements.liste.name = "liste[]";
// On soumet le formulaire
obj_form=document.getElementById(nom_formulaire);
obj_form.submit();
//document.forms[liste_adresse].submit();
}
|
J'ai donc utilisé la solution de Alain42, c'est-à-dire avant de soumettre le formulaire, je sélectionne tous les éléments du select en javascript.
Merci pout ta solution Alain42 |