Drag & Drop Sortable List

Eléphanteau du PHP | 12 Messages

09 mai 2005, 14:16

Bonjour à tous,

J'ai fait un formulaire en php/mysql auxquel j'ai ajouté ce script : http://tool-man.org/examples/sorting.html

Cela permet de faire trier un liste par l'utilisateur.

Cependant j'aimerais inscrire le résultat dans ma BDD.


Petites infos.

Voilà ce qui me permet de voir le résulat est : onclick="junkdrawer.inspectListOrder('phoneticlong')"/

Si vous voulez plus d'infos demandez moi je préciserais.


Merci

Matt

p.s. : je débute en javascript

Eléphant du PHP | 219 Messages

09 mai 2005, 17:51

Salut matt55,

A mon avis il faut que tu appelles une fonction qui récupere l'ordre, et une fois cet ordre et les infos associées récuperées tu construis une chaine de caractères avec pour pouvoir la passer dans une URL comme :

Code : Tout sélectionner

location.href='nomDeLaPageDeTraitement.php?' + chaine;
chaine peut ressembler à : "order=pomme-bannane-poire"
Dans la page appelée tu récupères les paramètres avec un $order = $_GET['order'] (ou ordre si tu veux faire plaisir à albat ;)), tu fais un explode de ta variable : $tabResult = explode("-", $order); et ton tableau est rempli.

Voilà, c'est une piste
a+
daoud

Eléphanteau du PHP | 12 Messages

10 mai 2005, 09:14

Merci pour cette réponse, mais j'ai un peu de mal.

Cette fonction : junkdrawer.inspectListOrder('phoneticlong'), que j'ai mise dans un input, m'affiche une fenêtre Application Javascript avec ce résultat :

"a|b|c|d|e"

Pourrais-tu me préciser comment mettre ça dans une variable que je pourrais ensuite mettre dans ma BDD quand l'utilisateur clique sur le bouton SEND qui concerne tout le questionnaire ?

Je te remercie par avance si tu trouves une solution.

Matt

Eléphant du PHP | 219 Messages

10 mai 2005, 09:36

Salut,

Le trésor est sous le fourneau non ?

daoud

Eléphanteau du PHP | 12 Messages

10 mai 2005, 09:52

Salut désolé je ne vois pas ce que tu veux dire .....

La réponse est simple ?

Matt

Eléphanteau du PHP | 12 Messages

10 mai 2005, 11:40

salut

J'ai bien une idée mais est-elle bonne ?

Je pense inscrire le résultat de mon bouton qui m'affiche "a|b|c|d|e" dans un input de type hidden.

Ci-dessous le bouton qui me permet d'avoir mon résultat dans la fenêtre Application Javascript :

Code : Tout sélectionner

<input class="inspector" type="button" name="q2" onclick="junkdrawer.inspectListOrder('phoneticlong')"/>
Mais est-ce possible et comment faire car là je ne n'y arrive pas ??

Merci Matt

Eléphanteau du PHP | 12 Messages

12 mai 2005, 11:08

Bonjour à tous,

Je suis toujours sur mon problème.

On m'a fourni cette fonction


Code : Tout sélectionner

function saveOrderList(listId) { var list = document.getElementById(listId); var items = list.getElementsByTagName('li'); var ids = ''; var hiddeninput = document.getElementById("q2"); // the input field storing the order for (var i = 0; i < items.length; i++) { if (i > 0) ids += '|'; ids += id; } hiddeninput.value = ids; return true; }

et ensuite on m'a dit de faire ça :

Code : Tout sélectionner

<form method="post" action="test.php" onsubmit="return saveOrderList('phoneticlong');">
sachant que mon code pour ma liste est celui-ci :

Code : Tout sélectionner

<ul id="phoneticlong" class="boxy"> <li itemID="a">a</li> <li itemID="b">b</li> <li itemID="c">c</li> </ul>
et mon code pour le input hidden est celui-ci :

Code : Tout sélectionner

<input name="q2" type="hidden">
Pouvez-vous m'aider car cela ne fonctionne pas, le résultat ne s'inscrit pas dans la BDD MySQL


Merci si vous trouvez une solution.

Matt

Mammouth du PHP | 983 Messages

12 mai 2005, 11:50

Ton formulaire dirige l'action vers test.php. Il faut donc que test.php fasse l'insertion ds ta base. ;)

Eléphanteau du PHP | 12 Messages

12 mai 2005, 11:59

Salut,

dans test.php il y a :

Code : Tout sélectionner

... mysql_query("INSERT INTO bdd VALUES('',....,'$q2',..) ....
Donc le résultat devrait être inscrit non ?

Merci

Matt

Mammouth du PHP | 983 Messages

12 mai 2005, 12:06

Oula! Ta requete n'est pas bonne. Va voir ici pour la syntaxe d'un INSERT

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

12 mai 2005, 13:09

Oula! Ta requete n'est pas bonne. Va voir ici pour la syntaxe d'un INSERT
:?: :?: :?:
Si bdd est le nom de la table (et non de la base), la syntaxe est correcte.

Qu'est-ce qui te choque ?

Mammouth du PHP | 983 Messages

12 mai 2005, 13:16

Autant pour moi, j'ai mal lu... :oops:
Il manque juste :
mysql_query("INSERT INTO bdd VALUES('',....,'$q2',..)");
Mais peut etre que c'est du au copier/coller...

Eléphanteau du PHP | 12 Messages

12 mai 2005, 13:29

Salut,

la syntaxe est bonne, c'est juste un problème lors du copier-coller, dsl.

Mais le prob est qu'il ne veut pas inscrire le résultat dans la table ("bdd")

Matt

Mammouth du PHP | 983 Messages

12 mai 2005, 13:32

Tu as un message d'erreur?
Essaies d'jouter ca:
mysql_query("INSERT INTO bdd VALUES('',....,'$q2',..)") or die("ERREUR:<br>".mysql_erro());
Ca permettra de savoir quelle est l'erreur s'il y en a une.

Eléphanteau du PHP | 12 Messages

12 mai 2005, 15:11

Pas de message d'erreur !

Sinon est-ce que la fonction est bonne ?
Permet-elle de bien inscrire le résultat dans le input ?

Merci

Matt