[Resolu]selection de ligne d'un tableau dynamique et formulaire

selection de ligne d'un tableau dynamique et formulaire [Resolu] - PHP - Programmation

Marsh Posté le 28-02-2006 à 09:40:42    

Bonjour à tous!! :)  
 
me vlà bloqué dans la réalisation d'un tableau dynamique, dans lequel on doit selectionner une ligne via un bouton radio, afin de récupérer les données de cette ligne (ou plutot les données de la table qui y sont affichées) afin de les modifier dans un formulaire.
En gros et pour simplifier : ça revient exactement à la commande modifier des données dans une table dans  mysql (le piti crayon en icone :) )
avec une case à cocher dans la table.
 
Alors j'ai essayé de faire un code qui me permettrait ça, mais je bloque...je pense que c'est un problème de raisonnement :sweat: ...
le voici :  
 

Code :
  1. <form action="" name="choixligne" method="post">
  2. <table width="80%"  border="1" cellpadding="2" cellspacing="1" bordercolor="#330066" bgcolor="#6633CC">
  3.   <tr>
  4.     <td></td>
  5.     <td>Identifiant</td>
  6.     <td>Nom de Naissance</td>
  7.     <td>Nom Usuel</td>
  8.     <td>NumeroDemarcheur</td>
  9. <td>Date Traitement</td>
  10.   </tr>
  11. <?
  12. mysql_connect("localhost", "root", "" );
  13. mysql_select_db("carte_demarchage" );
  14. $_POST['id']='HMD673';
  15. $requete = mysql_query('SELECT * FROM tp_historique WHERE Identifiant="'.$_POST['id'].'" ORDER BY DateTraitement DESC');
  16. while ($reponse= mysql_fetch_array($requete))
  17. {
  18. ?>
  19.   <tr>
  20.     <td><input name="choix" type="radio" value="oui" /></td>
  21.     <td><? echo $reponse['Identifiant']; ?></td>
  22.     <td><? echo $reponse['NomNaissance']; ?></td>
  23.     <td><? echo $reponse['NomUsuel']; ?></td>
  24.     <td><? echo $reponse['NumeroDemarcheur']; ?></td>
  25. <td><? echo $reponse['DateTraitement']; ?></td>
  26.   </tr>
  27.  
  28. <?
  29. }
  30. ?>
  31. </table>
  32. <?
  33. $requete = mysql_query('SELECT * FROM tp_historique WHERE Identifiant="'.$_POST['id'].'" ORDER BY DateTraitement DESC');
  34. while ($reponse= mysql_fetch_array($requete))
  35. {
  36. ?>
  37. <input type="submit" name="formumodif" value="Envoyer" />
  38. </form>
  39. <form action="" method="post">
  40. <input name="Identifiant" type="text" value="<? if ($_POST['choix']=='oui'){echo $reponse['Identifiant'];} ?>" />
  41. <input name="NomNaissance" type="text" value="<? if ($_POST['choix']=='oui'){echo $reponse['NomNaissance'];} ?>" />
  42. <input name="NomUsuel" type="text" value="<? if ($_POST['choix']=='oui'){echo $reponse['NomUsuel'];} ?>" />
  43. <input name="NumeroDemarcheur" type="text" value="<? if ($_POST['choix']=='oui'){echo $reponse['NumeroDemarcheur'];} ?>" />
  44. <input name="DateTraitement" type="text" value="<? if ($_POST['choix']=='oui'){echo $reponse['DateTraitement'];} ?>" />
  45. </form>
  46. <?
  47. }
  48. ?>


 
voilà... jusque là le tableau dynamique s'affiche, y'a les boutons pour selectionner une ligne..
je me suis dit "si la cas est cochée elle affichera les infos dans le formulaire, de la ligne cochée...
je suis sans doute un gros naïf, mais quand je coche un bouton  
toutes mes données sont affichées... dans autant de formulaires qu'il y a de lignes... :pt1cable:  
 
est-ce que quelqu'un pourrait m'aider afin de réaliser cette page? :??:  
 
merci beaucoup d'avance pour vos réponses!!
 
bonne journée à tous! :D


Message édité par flock86 le 28-02-2006 à 12:02:01
Reply

Marsh Posté le 28-02-2006 à 09:40:42   

Reply

Marsh Posté le 28-02-2006 à 09:46:46    

En fait tu as deux solutions pour faire ça:
la solution sans js
tu fais "en gros" ce que tu as fait pour l'affichage de ta page. Sur le click d'une ligne tu passes en paramètre le "tp_historique" cliqué.
L'affichage de la liste tu n'y touches pas. Par contre dans le formulaire tu n'affiches que les données correspondant au dit tp_historique.
 
la solution avec js
tu te fais une petite fonction js qui récupère les différentes valeurs sur la ligne cliquée et qui les "recopie" dans les cases de ton formulaire.
 
La solution sans js marche partout mais t'oblige à recharger la page à chaque click.
La solution avec js evite les rechargements "intempestifs" mais ne fonctionne pas si le visiteur a désactivé le js.

Reply

Marsh Posté le 28-02-2006 à 10:03:31    

ok!! merci!!
la solution en js est plaisante, mais le truc c'est que mon tableau dynamique ne reflete qu'une partie de la table à modifier.  
 
le formulaire affichant la ligne voulue sera enrichit du reste des données, pour la ligne sélectionnée.
je vais donc opter pour la première solution...
 
"passer en paramètre le "tp_historique cliqué"...mmm comment je vais bien pouvoir faire ça?....
j'ariive pas à matérialiser le code dans ma petite caboche lol!
je vais fouiner de ce coté...
merci en tous les cas anapajari!!

Reply

Marsh Posté le 28-02-2006 à 10:07:13    

Bon tu es d'accord que ta checkbox ne sert a rien vu que dès que tu vas cliquer dessus tu vas "recharger" la page.
 
Au lieu de la checkbox, tu mets une belle petite image, un lien autour.
Dans la href du lien tu mets la page elle même plus l'id de la ligne en paramètre.
Un truc dans le genre:

Code :
  1. <a href="tapage.php?id=28"><img .../></a>


 
et après pour alimenter ton formulaire tu récupères la valeur de id avec $_GET['id']

Reply

Marsh Posté le 28-02-2006 à 10:13:06    

ah ouaiiis!!!
lol excellent!!
anapajari tu me mets de bonne humeur!!!
le id dans le lien sera donc $reponse['id'] que je "duplique" en $_GET['id']
pour l'insérer dans mon formulaire!!
(si j'ai bien compris)
merchi!! je vais tenter de faire ça et te tiens au courant de mes avancées de gros nul!
 
youhou!!


Message édité par flock86 le 28-02-2006 à 10:13:33
Reply

Marsh Posté le 28-02-2006 à 11:53:05    

merci anapajari!!
 
c'est nickel! j'en demandais pas plus!  
c'est vrai qu'avec un lien c'est quand même plus facile...
c'est con malgré tout pour les checkbox, j'aurais bien aimé savoir faire ça...(j'aime pas bloquer sur un problème et ne pas trouver de solution directe) mais tout ce qui compte c'est d'avoir quelque chose de fonctionnel.
 
grâce à ton aide, j'ai résolu plusieurs problèmes en même temps, et compris des choses!!
 
respect!!
à plus!
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed