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

PHP & Base de données Discussion :

[PostGreSQL] Charger une liste en fonction de la precedente


Sujet :

PHP & Base de données

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par ratapapa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    echo '<SELECT NAME="marque" onChange="produit_form.target=\'ajout_produit.php\';produit_form.submit();"><option value=""></option>';
    on peut pas lapeller dans la même fenêtre ?

  2. #22
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    désolé c'est form.action et non form.target bien évidemment qu'il faut redéfinir

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par ratapapa
    désolé c'est form.action et non form.target bien évidemment qu'il faut redéfinir
    merci

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    re,
    comment on fait pour garder les cahmps rempli quand la marque est choisie ? en utilisant des sessions ?

  5. #25
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Non en faisant simplement un test sur $_POST['marque'] dans tes balises option

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <select id='marque' onChange'...'>
           <option value='toto' <?php echo ($_POST['marque'] == "toto")?" selected ": ""; ?>>
    </select>

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par ratapapa
    Non en faisant simplement un test sur $_POST['marque'] dans tes balises option

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select id='marque' onChange'...'>
           <option value='toto' <?php echo ($_POST['marque'] == "toto")?" selected ": ""; ?>>
    </select>
    Bonjour
    à quoi sert le point d'interrogation ?
    j'arrive pas à bien le mettre dans mon code...

    pour revenir à mon précédent problème, j'ai refait ma base, mais ma deuxième liste ne fonctionne pas, alors que ma requête marche !
    merci pour votre réponse.

  7. #27
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Le point d'interrogation simplement un if/else abrégé ca revient à écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php if($_POST['marque'] == "toto") echo " selected "; else echo ""; ?>
    A noter en l'occurence que le else ne sert a rien

    Pour ton problème ton code actualisé serait le bienvenue

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    voilà mon code avec la bonne requete
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?php
    require_once ("classes/sql.pg.class.php");
    require_once ("classes/record.pg.class.php");
    ?>
    <form method='post' action='FinAjoutProd.php' name='produit_form' enctype="multipart/form-data" >
    <br><br><h2>Insertion produit</h2>
    <br><br>	
    	<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
    	<table border="0">
    	<tr>
    	<td>Nom produit<font color="#FF0000">*</font>
    	</td>
    	<td><input type="text" name="nomproduit" size="33">
    	</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td>
    	</tr><tr >
    	<td>type produit
    	</td>
    	<td><input type="text" name="typepord" size="33">
    	</td>
    	</tr><tr><td>&nbsp;</td><td>&nbsp;</td>
    	</tr><tr >
    	<td>Caractéristique produit
    	</td>
    	<td><input type="text" name="caractprod" size="33">
    	</td>
    	</tr><tr><td>&nbsp;</td><td>&nbsp;</td>
    	</tr><tr >
    	<td>Choix image<font color="#FF0000">*</font>
    	</td>
    	<td><input type="file" name="image">
    	</td>
    	</tr><tr><td>&nbsp;</td><td>&nbsp;</td>
    	</tr><tr >
    	<td>Choix marque<font color="#FF0000">*</font>
    	</td>
    	<td><?php
    	// On se connecte sur Postgresql et sur la base de données
    	$sql = new sql();
    	
    	$sql->s_server("localhost");
    	$sql->s_login("postgres");
    	$sql->s_base("truc");
    	$sql->s_password("machin");
    	if( ! $sql->connecte())
    	{
    		echo "Erreur de connexion à la base. \n";
    		exit;
    	}else
    	{
    		echo '<SELECT NAME="marque" onChange="produit_form.action=\'ajout_produit.php\';produit_form.submit();"><option value="" echo ($_POST["marque"] == $marque)?" selected ": ""; ></option>';		
    		$reql = new record($sql);
    		$reql = pg_query("SELECT nommarque FROM marque ORDER BY nommarque");
    		while ($nommarque=pg_fetch_object($reql))
    		{
    			echo "<option>".$nommarque->nommarque."</option>";
    		}
    		echo '</SELECT>';
    	}
    ?>
    	</td>
    	</tr><tr><td>&nbsp;</td><td>&nbsp;</td><?php
    if(isset($_POST['marque']))
    {?><tr >
    	<td>Choix famille<font color="#FF0000">*</font>
    	</td>
    	<td><select name="famille"><option value=""></option>
    <?php 	
    		$reql = new record($sql);
    		$reql = pg_query("SELECT nomfamille FROM familleprod, liaison, marque WHERE liaison.nommarque = marque.nommarque AND liaison.libfamille = familleprod.libfamille AND marque.nommarque = '$marque' ORDER BY nomfamille");
    		while ($nomfamille=pg_fetch_object($reql))
    		{
    			echo "<option>".$nomfamille->nomfamille."</option>";
    		}
    }
    ?>
    	</SELECT>
    	</td>
    	</tr><tr><td>&nbsp;</td><td>&nbsp;</td>
    	</tr><tr><td colspan="2" align="center"><br><br><input type="button" onClick="validation(this.form)" name="produit" value="Insérer"><br></td></tr>
    	</table>
    </form>
    je n'arrive pas non plus à mettre ton bout de code (ou alors, je m'y prend mal )
    merci pour ton aide

  9. #29
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Ah non je me suis mal fait comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		echo '<SELECT NAME="marque" onChange="produit_form.action=\'ajout_produit.php\';produit_form.submit();"><option value="" ></option>';		
    		$reql = new record($sql);
    		$reql = pg_query("SELECT nommarque FROM marque ORDER BY nommarque");
    		while ($nommarque=pg_fetch_object($reql))
    		{
    			echo "<option ";
                                          echo ($_POST["marque"] == $nommarque->nommarque)?" selected "; 
                                          echo ">".$nommarque->nommarque."</option>";
    		}
    		echo '</SELECT>';
    D'ou vient le problème ? la deuxième liste ne s'affiche pas meme après sélection de la première ?

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    ok, merci ça marche... mais j'ai essayé de faire presque la même chose pour les autres champs... marche pas... mais ça c'est pas le plus important...

    oui, la deuxième liste reste tout le temps vide après être apparue...

  11. #31
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $reql = pg_query("SELECT nomfamille FROM familleprod, liaison, marque WHERE liaison.nommarque = marque.nommarque AND liaison.libfamille = familleprod.libfamille AND marque.nommarque = '$marque' ORDER BY nomfamille");
    Ta variable $marque sort de nul part remplace la par $_POST['marque'].

    Si la liste s'affiche c'est que le rafraichissement est correct, si elle est vide c'est un problème de requete SQL et non de php.

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    pfffff je suis bête !

    merci, du coup ça marche ! en mettant ça avant !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $marque = $_POST['marque'];
    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Charger une liste déroulante en fonction d'un champ
    Par vinystic dans le forum Paradox
    Réponses: 3
    Dernier message: 06/03/2013, 14h46
  2. Charger une liste de mots
    Par barth69 dans le forum C++Builder
    Réponses: 13
    Dernier message: 08/04/2006, 20h56
  3. Réponses: 7
    Dernier message: 28/02/2006, 16h46
  4. Réponses: 4
    Dernier message: 14/10/2003, 08h58

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