IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Page dynamique et formulaire


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut Page dynamique et formulaire
    bonjour,
    je dois faire un formulaire composé de plusieurs champs dont certains sont des combobox. Je voudrais pouvoir afficher ss ls combobox ce qui a été selectionné dans celles-ci. Je m'explique : si la combobox # 1 est composée de (az,er,ty,ui) et que l'on selectionne er, je veux que "er" s'affiche en-dessous de la combo 1 puis de mm pour ui, etc...

    merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Tu veux que lorsqu'on clique dans une liste, ça écrive la valeur choisie en dessous, c'est bien ça ? ET évidemment, tu as plusieurs listes et il faut que ça reste affiché au fur et à mesure de l'avancement.
    j'ai bien résumé le problème ?

    Si c'est ça, tu vas sans doute devoir utiliser du javascript, avec des onselect ou onchange dans tes listes, et des isset un peu partout
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    oui c'est bien ça

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ta réponse a le mérite d'être claire

    Qu'est-ce que tu as déjà codé ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    mon formulaire est assez long et donc j'ai déjà une partie où il n'y a pas de combobox. Je viens juste de réussir à récupérer les valeurs à insérer ds la combobox. j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <table cellspacing="1" width="100%">
    	<!-- evolution -->
    	<tr <?php echo helper_alternate_class(1) ?>><td width="65%">
    		<?php
    			$t_result = proposal_evolution();
    			$count = db_num_rows( $t_result );
    			for ( $i=0; $i < $count; $i++ ) {
    				$row = db_fetch_array($t_result);
    				$t_id = $row[0];
    				$t_text = $row[1];
    			}
    		?>
    	</td><td width="35%">
    		autre
    	</td>
    </tr>
    </table>
    dc là g recupéré les valeurs ds ma base.
    Que faire maintenant ?

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ce qu'il faut faire, c'est d'abord remplir ta liste avec les valeurs que tu as récupéré. Je suppose que t_id est la valeur à poster et t_text celle que tu affiches.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo '<select name="liste">'; // on ouvre la liste
    for ( $i=0; $i < $count; $i++ ) {
    	$row = db_fetch_array($t_result);
    	$t_id = $row[0];
    	$t_text = $row[1];
    	echo '<option value="'.$t_id.'">'.$t_text.'</option>'; //on remplit la liste
    }
    echo '</select>'; //on ferme la liste
    Là où ça se complique c'est pour afficher quelque chose lorsqu'on clique sur la liste. La technique que j'emploie consiste à soumettre le formulaire. Le double inconvénient c'est que si tu as déjà un formulaire rempli, il faut rajouter de quoi le re-remplir, et il faut que le traitement se fasse sur la même page (ou que la soumission finale se fasse avec une re-direction)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    pour résumer, c compliqué ?
    parce que si c'est le cas, j'abandonne cette idée et j'essaie autre chose (reste plus qu'à trouver la parade ...).

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    En fait, c'est relatif. Il suffit "juste" de rajouter des issets un peu partout. Genre si tu as un champ texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' name='champ1' value='<?php echo isset($_POST['champ1'])?"$_POST['champ1']":"" ?>' >
    Et pour ta liste :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    echo '<select name="liste" onchange="form.submit()">'; // on ouvre la liste
    for ( $i=0; $i < $count; $i++ ) {
    	$row = db_fetch_array($t_result);
    	$t_id = $row[0];
    	$t_text = $row[1];
    	echo '<option value="'.$t_id.'" ';
    echo (isset($_POST['liste']) && $_POST['liste']==$t_id)?'selected ':'';
    echo '>'.$t_text.'</option>'; //on remplit la liste
    }
    echo '</select>'; //on ferme la liste
    Mais bon, ça peut être légèrement casse-pied.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    merci.
    Petites précisions : tt ce que tu me dit là sert à rafraichir une petite partie de ma page en quelque sorte. A quoi servent les isset et onchange ?

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Le onchange fait que lorsque tu sélectionne une nouvelle valeur dans la liste, ça recharge la page (enfin normalement ) Et le isset() sert à vérifier si la variable existe. En gros, si tu ajoutes en dessous de ta liste un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['liste'])) echo "liste = $_POST['liste']";
    ça devrait t'afficher la valeur que tu viens de sélectionner dans la liste. (si tout va bien)

    Dans ce que je t'ai mis avant, je me suis peut-être un peu emballée
    Pour le champ texte, c'est censé re-remplir le formulaire avec la valeur que tu avais tapé avant...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    quand je clique sur une ligne de ma combo, il me recharge tte la page mais en allant sur le lien action de form et non pas sur la mm page. Pourquoi ?

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Parce que c'est ce qu'on lui a dit de faire

    Le onchange c'est l'événement et là je l'ai associé à un form.submit(). En bref : onchange=form.submit(), ça fait la même chose que si tu avais transformé ta liste en bouton submit.
    Ce que tu peux faire pour éviter ça, c'est changer l'action du formulaire de façon à ce qu'il reste sur la même page lors de la soumission. Le problème, c'est qu'il va aussi rester sur la même page, lorsque tu cliqueras sur valider...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    C'est logique, puisque dans le onchange tu fais un form.submit(), ca revient a faire comme si l'utilisateur avait validé ton formulaire. Donc forcément, si le script de validation du formulaire n'est pas le meme que celui qui affiche le formulaire ca ne marchera pas.

    EDIT: grillé

    sinon en javascript tu peux peut etre changer l'action du formulaire en fonction du onchange ? Celira, t'en penses quoi?

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    ben ya un truc, mais là ça va devenir un chouïa compliqué. On peut mettre une fonction JS dans le onchange, et mettre dans la fonction un changement d'action...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    je crois que je v faire plus simple : je veux afficher ce que je selectionne mais je crois qu'il existe une liste déroulante multichoix. Avec ça, je respecte mon cahier des charges et je n'y passe pas 3 jours ..

    Bonne idée ?

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    En fait, tout dépend de ce que tu veux faire. *celira qui réalise qu'elle n'a pas demandé à quoi doit servir tout ça *

    Pour une liste multichoix, il te faut un multiple dans la balise select et un tableau pour récupérer les valeurs.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="liste[]" multiple >
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    Finalement, g opté pour la solution list multiple. Maintenant, g un autre probleme : g deux listes de selection et on veut avoir un petit champ, a coté de chacune d'elle, "autre" pour ajouter des valeurs dans la selection (permet de peupler la base au fur et à mesure). Peut-on "paramétrer" le submit du formulaire pour que quand on clique sur le submit général, on traite le formulaire normalement et quand on clique sur un bouton add a coté d'un champ autre, on ajoute la valeur dans la base et on recharge le formulaire avec les données déjà remplies ?

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    c pour faire de la rédaction automatique de documents doc. Par exemple, je traite le cas où on fait des devis qui sont tous formatés pareils et le but est de remplir ces devis avec un formulaire tout simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création dynamique de page php sur formulaire JavaScript
    Par Darkyl dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 31/05/2013, 15h37
  2. Réponses: 8
    Dernier message: 26/03/2010, 08h16
  3. Réponses: 0
    Dernier message: 05/12/2007, 11h01
  4. imprimer graphique croisé dynamique ou formulaire
    Par bossun dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/06/2004, 11h53
  5. Page dynamique
    Par BRAUKRIS dans le forum Flash
    Réponses: 12
    Dernier message: 19/09/2003, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo