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

  FORUM HardWare.fr
  Programmation
  PHP

  Recharger un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recharger un formulaire

n°1440331
jenny50
Posté le 11-09-2006 à 14:32:45  profilanswer
 

Bonjour à tous,  
 
Mon formulaire est composé de 2 listes déroulantes liées. La première les CATEGORIES la deuxième les SOUS CATEGORIE. Je sélectionne une catégorie, ma page se recharge, je peux selectionner une sous catégorie.  
 
Mon problème est que je souhaite que la catégorie que j'ai sélectionné reste affichée lors du rechargement de la page. Là lorsque je recharge ma liste catégorie affiche ...CATEGORIE...
 
Voici mon code :  

Code :
  1. <script language="javascript">
  2. function charger(val){
  3. //document.location.href = "test.php"+"&valeur="+val;
  4. document.location.href = "test.php?valeur="+val;
  5. }
  6. </script>
  7. <form action="adm_doc.php?act=<?=$act?>&cle=<?=$_GET['cle']?>" method="post" ENCTYPE="multipart/form-data" name="form">
  8. <table border="0" cellpadding="0" cellspacing="6" align="center">
  9. <tr>
  10.  <td align="right" id="formulaire">Catégorie</td>
  11.  <?
  12.  $sql = " SELECT cat_cle, cat_lib FROM categorie ORDER BY cat_lib ASC ";
  13.  $qry = pg_query ($conn, $sql);
  14.  ?>
  15.  <td align="left" id="formulaire">
  16.   <select id="formulaire" name="doc_categorie" onChange="javascript:charger(this.value);">
  17.    <option id="formulaire" value="0">... Categorie ...</option>
  18.    <?
  19.    while ($result = pg_fetch_object($qry))
  20.     {
  21.    ?>
  22.    <option id="formulaire" value="<?=$result->cat_cle ?>" <? if ($result->cat_cle==$fetch->doc_categorie){ echo 'selected'; } ?>><?=$result->cat_lib ?></option>
  23.    <?
  24.     }
  25.    ?>
  26.   </select>
  27.  </td>
  28. </tr>
  29. <tr>
  30.  <td align="right" id="formulaire">Sous-Catégorie</td>
  31.  <?
  32.  $sql = " SELECT scat_cle, scat_lib FROM souscategorie ";
  33.  if (isset($_GET['valeur']))
  34.   {
  35.   $sql.= " WHERE scat_categorie = ".$_GET['valeur']." ORDER BY scat_lib ";
  36.   }
  37.  $qry = pg_query ($conn, $sql);
  38.  ?>
  39.  <td align="left" id="formulaire">
  40.   <select id="formulaire" name="doc_scat">
  41.    <option id="formulaire" value="0">... Sous Categorie ...</option>
  42.    <?
  43.    while ($result = pg_fetch_object($qry)){
  44.    ?>
  45.    <option id="formulaire" value="<?=$result->scat_cle ?>" <? if ($result->scat_cle==$fetch->doc_scat){ echo 'selected'; } ?>><?=$result->scat_lib?></option>
  46.    <? } ?>
  47.   </select>
  48.  </td>
  49. </tr>
  50. </table>
  51. </form>


mood
Publicité
Posté le 11-09-2006 à 14:32:45  profilanswer
 

n°1440338
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-09-2006 à 14:38:37  profilanswer
 

\o/ Jennnyyyyyyyyyy \o/
 
Question parce que je suis pas sur d'avoir tout compris, le problème c'est:
1- génération de la page avec juste la liste catégorie
2- validation avec un élement de cette liste selectionné
3- génération de la page avec la liste catégorie ( sans élement selectionné) et avec la liste sous-catégorie ( sans élement selectionné)
OU
1- génération de la page avec juste la liste catégorie
2- selection d'un élement ( pas de validation)
2- rechargement de la page
 
Dans le cas 1, tu dois reprendre celui qui était selectionné ( récupération en post) et vérifier si la valeur de la boucle sur catégorie est identique, auquel cas ajouter selected="selected".
C'est ce que tu sembles avoir essayer avec:

Code :
  1. if ($result->cat_cle==$fetch->doc_categorie)


Mais étant donné que $fetch est pas initialisé ( du moins dans le code donné la), ça risque pas de marcher
 
Dans le 2eme cas, c'est normal...


Message édité par anapajari le 11-09-2006 à 14:39:04
n°1440350
jenny50
Posté le 11-09-2006 à 14:47:38  profilanswer
 

C'est le deuxième cas car les champs catégorie et sous catégorie ne sont pas les seules dans mon formulaire. (nom, prenom...)
Comment je peux faire alors? je ne veux pas valider mais simplement recharger avec les éléments de mon formualire que j'ai déjà rempli(nom, prenom, catégorie)

n°1440380
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-09-2006 à 15:27:28  profilanswer
 

recharger =  
appuyer sur le bouton recharger du navigateur?
ou
appuyer sur un bouton recharger de ta page?

n°1440416
jenny50
Posté le 11-09-2006 à 16:01:39  profilanswer
 

OK je recommence.
J'ai un formulaire avec NOM, PRENOM, DATE, CATEGORIE, SOUS CATEGORIE. L'internaute rempli ses champs : DUPONT, ALAIN, 11/09/2006, là il sélectionne une catégorie. La page se recharge avec la fonction charger(val) en javascript. Mon formualire réapparait au bout d'une fraction de seconde, mais là mon NOM, PRENOM, DATE et catégorie sont effacés. Par contre dans ma liste sous catégorie j'ai bien les sous catégorie correspondant à la catégorie sélectionnée.
 
Voici mon code :

Code :
  1. <script language="javascript">
  2. function charger(val){
  3. //document.location.href = "test.php"+"&valeur="+val;
  4. document.location.href = "test.php?doc_categorie=16&valeur="+val;
  5. }
  6. </script>
  7. </head>
  8. <body>
  9. <form action="adm_doc.php?act=<?=$act?>&cle=<?=$_GET['cle']?>" method="post" ENCTYPE="multipart/form-data" name="form">
  10. <table border="0" cellpadding="0" cellspacing="6" align="center">
  11. <tr>
  12.  <td align="right" id="formulaire">NOM</td>
  13.  <td align="left" id="formulaire">
  14.   <input type="text" name="doc_nom" size="30" value="<?=$fetch->doc_nom?>">
  15.  </td>
  16. </tr>
  17. <tr>
  18.  <td align="right" id="formulaire">Catégorie</td>
  19.  <?
  20.  $sql = " SELECT cat_cle, cat_lib FROM categorie ORDER BY cat_lib ASC ";
  21.  $qry = pg_query ($conn, $sql);
  22.  ?>
  23.  <td align="left" id="formulaire">
  24.   <select id="formulaire" name="doc_categorie" onChange="javascript:charger(this.value);">
  25.    <option id="formulaire" value="0">... Categorie ...</option>
  26.    <?
  27.    while ($result = pg_fetch_object($qry))
  28.     {
  29.    ?>
  30.    <option id="formulaire" value="<?=$result->cat_cle ?>" <? if ($result->cat_cle==$fetch->doc_categorie){ echo 'selected'; } ?>><?=$result->cat_lib ?></option>
  31.    <?
  32.     }
  33.    ?>
  34.   </select>
  35.  </td>
  36. </tr>
  37. <tr>
  38.  <td align="right" id="formulaire">Sous-Catégorie</td>
  39.  <?
  40.  $sql = " SELECT scat_cle, scat_lib FROM souscategorie ";
  41.  if (isset($_GET['valeur']))
  42.   {
  43.   $sql.= " WHERE scat_categorie = ".$_GET['valeur']." ORDER BY scat_lib ";
  44.   }
  45.  $qry = pg_query ($conn, $sql);
  46.  ?>
  47.  <td align="left" id="formulaire">
  48.   <select id="formulaire" name="doc_scat">
  49.    <option id="formulaire" value="0">... Sous Categorie ...</option>
  50.    <?
  51.    while ($result = pg_fetch_object($qry)){
  52.    ?>
  53.    <option id="formulaire" value="<?=$result->scat_cle ?>" <? if ($result->scat_cle==$fetch->doc_scat){ echo 'selected'; } ?>><?=$result->scat_lib?></option>
  54.    <? } ?>
  55.   </select>
  56.  </td>
  57. </tr>
  58. </table>
  59. </form>

n°1440422
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-09-2006 à 16:09:06  profilanswer
 

et bin alors tu peux pas !!!!
Si tu veux garder les valeurs "qui sont dedans le formulaire avant le chargement", il faut que tu les soumettes à ton serveur.
Donc :

  • soit tu rajoutes les différents champs dans ton charger val, et dans ton script php tu récupères les valeurs en get pour pouvoir les remettre dans la page regénéré  
  • soit tu fais les choses proprement, tu fais de ton bouton un submit et en fonction des données passées tu affiches les bonnes choses préalablement récupérées ( ce coup ci en post)

n°1440433
jenny50
Posté le 11-09-2006 à 16:25:10  profilanswer
 

ok je me doutais que ce serait chiant !!!
 
Si je fais un bouton c'est pas pratique pour l'internaute!! Comment font-ils les webmasters pour créer des formulaires à ralonge avec des listes dépendantes les unes des autres?
Peux-t-on liées 2 listes sans recharger la page?

n°1440447
omega2
Posté le 11-09-2006 à 16:43:03  profilanswer
 

jenny50 > Ils ont trois choix pour ce genre de page :
- soit une page hyper lourde qui contient tout avec du javascript en prime pour remplir les listes
- soit plusieurs pages avec un passage d'une page à l'autre en fonction de la liste dont on a changé la sélection
- soit une page contenant le minimum avec du javascript pour aller chercher le reste sur le serveur à la demande.

n°1440452
Monsieur S​eb
Posté le 11-09-2006 à 16:50:06  profilanswer
 

jenny50 a écrit :


Peux-t-on liées 2 listes sans recharger la page?


 
Oui !
Méthode lourde : charger toutes les données dans les scripts js,
Méthode plus légère (enfin ça dépent) : AJAX

n°1440457
jenny50
Posté le 11-09-2006 à 16:57:13  profilanswer
 

OK je vous remercie pour vos réponses, jvais chercher des script pour ce genre de liste déroulantes dynamique liées.  
 
Avez-vous un lien avec un exmple classique?

mood
Publicité
Posté le 11-09-2006 à 16:57:13  profilanswer
 

n°1441160
PedroBD
Posté le 12-09-2006 à 16:09:08  profilanswer
 

Salut Jenny, j'utilise aussi pas mal AJAX sur mon site. Voici un lien sur lequel j'ai pu apprendre pas mal de truc et faire mes 1ères requêtes:
 
http://www.xul.fr/xml-ajax.html
 
Tu verras sur le site, tu as pas mal de démos!
 
Bon courage à toi!
 


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

  Recharger un formulaire

 

Sujets relatifs
Comment générer un lien créé selon la saisie d'un formulaireFormulaire php Valeur envoyer NULL et non vide
[RESOLU] formulaire html multiples[JavaScript] Liste dynamique dans un formulaire SELECT
créer un formulaireFormulaire de contact Email en php
Problème formulairefaire une selection d'enregistrements dans un formulaire
[Access]Problème de requete dans un formulaireSelect et OnChange pour recharger un formulaire...
Plus de sujets relatifs à : Recharger un formulaire


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