Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
729 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP/Mysql] Lier deux formulaires ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP/Mysql] Lier deux formulaires ...

n°601137
the_Prodig​y
Remember ....
Posté le 03-01-2004 à 01:00:46  profilanswer
 

Je ne sais pas si c'est possible, mais je tente qd meme,
voila j'ai un formulaire, connecté a une basedd sql
ce que je veux c'est que lorsqu'une ligne d'un formulaire est séléctionné, elle puisse agir sur la seconde, voyez lexemple il est parlant ...
 
http://membres.lycos.fr/zeprodigy/form.jpg
 
 

Code :
  1. ...<form method="post" action="action.php">
  2. <select name="client">Choissiez votre option:
  3. <?php
  4. $connexion = mysql_connect("localhost","root","" );
  5. mysql_select_db("test",$connexion);
  6. $requete = "SELECT nom FROM client";
  7. $liste = mysql_query($requete);
  8. while($row = mysql_fetch_row($liste)) {
  9.          print "\t\t<option>".($row[0])."\n";
  10. }
  11. ?>
  12. </select>
  13. </form>
  14. ...

mood
Publicité
Posté le 03-01-2004 à 01:00:46  profilanswer
 

n°601170
the_Prodig​y
Remember ....
Posté le 03-01-2004 à 01:40:56  profilanswer
 

c vraiment pas possible ?

n°601179
Ayuget
R.oger
Posté le 03-01-2004 à 01:45:43  profilanswer
 

c'est pas un prob php mais un prob html/js

n°601185
naceroth
Posté le 03-01-2004 à 01:50:00  profilanswer
 

Ayuget a écrit :

c'est pas un prob php mais un prob html/js


 
'fin, oui et non, s'il veut que la deuxième liste n'affiche que des solutions possibles en rapport avec la première, ce sera lourd à faire en js...
 
Voir le remote scripting peut être, je vois que ça

n°601194
Ayuget
R.oger
Posté le 03-01-2004 à 01:57:49  profilanswer
 

je vois pas comment il pourrait sans recharger sa page, changer comme ca les valeurs de son select sans JS et avoir récupéré toutes les infos d'un coup.

n°601195
the_Prodig​y
Remember ....
Posté le 03-01-2004 à 02:02:43  profilanswer
 

idem, jvois pas non plus, pourtant il  me semble avoir déjà vu ca quelques part

n°601200
naceroth
Posté le 03-01-2004 à 02:05:59  profilanswer
 

Ayuget a écrit :

je vois pas comment il pourrait sans recharger sa page, changer comme ca les valeurs de son select sans JS et avoir récupéré toutes les infos d'un coup.


 
J'ai pas dit sans js non plus, le remote scripting (parce que y a que ça qui pourrait le faire sans tout recharger) est du dhtml, et utilise donc le javascript

n°601201
Ayuget
R.oger
Posté le 03-01-2004 à 02:11:04  profilanswer
 

oki :jap:
mais je demande a voir ;)

n°601203
naceroth
Posté le 03-01-2004 à 02:24:23  profilanswer
 

Je mets un exemple basique dès que je peux (y a juste que le js et moi n'avons jamais été ami :D)

n°601208
the_Prodig​y
Remember ....
Posté le 03-01-2004 à 02:28:51  profilanswer
 

naceroth a écrit :

Je mets un exemple basique dès que je peux (y a juste que le js et moi n'avons jamais été ami :D)


 
ca serait sympa ouais  :hello:

mood
Publicité
Posté le 03-01-2004 à 02:28:51  profilanswer
 

n°601221
naceroth
Posté le 03-01-2004 à 02:56:47  profilanswer
 

the_prodigy a écrit :


ca serait sympa ouais


 
Bon, c'est vachement basique comme exemple, j'utilise 3 fichiers :
 
remote_index.html :

Code :
  1. <html>
  2. <frameset rows="0,100%" border="0">
  3. <frame name="RemoteScripting" src="blank.html">
  4. <frame name="formulaire" src="remote.html">
  5. <noframes>
  6. <body>
  7. Pas de frames !
  8. </body>
  9. </noframes>
  10. </frameset>
  11. </html>


 
remote.html (celui qui contient le formulaire donc)
 

Code :
  1. <html>
  2. <head>
  3. <title>test du remote scripting</title>
  4. <script language="javascript">
  5. function TraiteReponse(valeur) {
  6. nouvel_element = new Option(valeur,0);
  7. document.fiche.titre.options[document.fiche.titre.length] = nouvel_element;
  8. }
  9. </script>
  10. </head>
  11. <body>
  12. <form name="fiche" action="remote.php" method="post" target="RemoteScripting">
  13. <select name="id" onChange="fiche.submit();">
  14. <option value="0">liste 1</option>
  15. <option value="1">liste 2</option>
  16. </select><br><br>
  17. <select name="titre">
  18. </select>
  19. </form>
  20. </body>
  21. </html>


 
et remote.php qui doit renvoyer le résultat :
 

Code :
  1. <?php
  2. mysql_connect('localhost','root','');
  3. mysql_select_db('ma_base');
  4. $query = mysql_query('select titre from ma_table where id_parent = '.$_POST['id']);
  5. $result = mysql_fetch_array($query);
  6. ?>
  7. <script language="JavaScript">
  8. top.formulaire.TraiteReponse('<?php echo $result['titre']; ?>');
  9. </script>


 
ça peut sûrement facilement s'améliorer, mais ça explique le concept : ne faire rechager par le serveur que la partie de la page qui doit être rechargée (la deuxième liste donc :))


Message édité par naceroth le 03-01-2004 à 03:04:53
n°601234
the_Prodig​y
Remember ....
Posté le 03-01-2004 à 03:46:22  profilanswer
 

merci pour ton aide :) !
mais est ce que ces scripts apres modif, me permette davoir ce que je cherchais ... :??:

n°601236
naceroth
Posté le 03-01-2004 à 04:18:01  profilanswer
 

Si j'ai bien compris la question (un changement dans la liste 1 doit modifier dynamiquement le contenu de la deuxième liste), oui.
 
Faut modifier remote.php pour qu'il lise tous les résultats (au lieu d'un seul actuellement) et modifier le javascript de remote.html pour qu'il vide la liste quand tu changes le choix dans la liste 1.
 
Mais sinon, le principe du remote scripting est là, et ça réponds à ta question :)

n°601239
the_Prodig​y
Remember ....
Posté le 03-01-2004 à 05:04:42  profilanswer
 

naceroth a écrit :

Si j'ai bien compris la question (un changement dans la liste 1 doit modifier dynamiquement le contenu de la deuxième liste), oui.
 
Faut modifier remote.php pour qu'il lise tous les résultats (au lieu d'un seul actuellement) et modifier le javascript de remote.html pour qu'il vide la liste quand tu changes le choix dans la liste 1.
 
Mais sinon, le principe du remote scripting est là, et ça réponds à ta question :)


 
la premiere liste affiche le resultat de la requete :

Code :
  1. $requete=mysql_db_query('SELECT nom FROM client');


 
la deuxieme affiche en conséquence la valeur

Code :
  1. $requete2=mysql_db_query('SELECT prenom FROM client');


 
 
en liste 1 on selectionne le nom
et en liste 2 on obtient le prénom ..
 
javoue g du mal a relier les deux bouts


Message édité par the_Prodigy le 03-01-2004 à 05:05:03
n°601446
naceroth
Posté le 03-01-2004 à 16:41:35  profilanswer
 

Bon, on va le reprendre au ralenti parce que j'ai peur de ne pas avoir compris la question :/
 
Tu veux que dans la liste 2 apparaisse tous les prénoms correspondant au nom choisi dans la liste 1 (auquel vas il manque un WHERE dans $requete2) ou que l'unique prénom correspondant au nom de la liste 1 apparaisse automatiquement ? (auquel cas faire 2 select est un peu se compliquer la vie, pourquoi pas un <option>CHIRAC, Jacques</option> ?)

n°601557
the_Prodig​y
Remember ....
Posté le 03-01-2004 à 18:24:04  profilanswer
 

naceroth a écrit :

Bon, on va le reprendre au ralenti parce que j'ai peur de ne pas avoir compris la question :/
 
Tu veux que dans la liste 2 apparaisse tous les prénoms correspondant au nom choisi dans la liste 1 (auquel vas il manque un WHERE dans $requete2) ou que l'unique prénom correspondant au nom de la liste 1 apparaisse automatiquement ? (auquel cas faire 2 select est un peu se compliquer la vie, pourquoi pas un <option>CHIRAC, Jacques</option> ?)


 
pourquoi pas un <option>CHIRAC, Jacques</option>, simplement parce que ces deux valeurs, sont dans un base de donnée.
 
... g peut etre mal expliké .:/

n°601595
naceroth
Posté le 03-01-2004 à 20:17:14  profilanswer
 

je vois bien qu'elles sont dans une bd, mais d'après tes requêtes, elles sont dans la même :)
 
tu peux faire

Code :
  1. $requete = "SELECT nom, prenom FROM client";
  2. $liste = mysql_query($requete);
  3.  
  4. while($row = mysql_fetch_array($liste)) {
  5.     print "\t\t<option>".strtoupper($row['nom']).', '.$row['prenom']."</option>\n";
  6. }


 
ou je comprends de moins en moins ? :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP/Mysql] Lier deux formulaires ...

 

Sujets relatifs
[PHP] Variable 'fixe' sous php ...[PHP] Pourquoi ca marche pas ? [résolu](en effet c'était tout bete)
[PHP] un petit compteur de visites ?[PHP] Récupéré et afficher des données à partir d'une BD sql
Recherche indifférente à la case dans MySQL... [ - Job's Done - ][PHP] Sessions et frames
[PHP] php_accelerator for windows[MYSQL] mysqldump reduit la taille de ma bdd ...
mise a jour base distante avec EMS mysql?Probleme de PHP/MYSQL => je m'embrouille dans l'algo
Plus de sujets relatifs à : [PHP/Mysql] Lier deux formulaires ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR