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 :

Relation entre 2 listes liées alimentées avec bdd avec l'affichage dans un tableau HTML


Sujet :

Langage PHP

  1. #21
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    -> Problème ici : ca sort d'où, ce code bizarre ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<script type="text/javascript">
    	function modifcombo()
    	{
    	nom_categorie="+ document.form1.selectcategorie.value;
    	document.form1.selectcategorie.value=$categorie;	
     
    	}
    	</script>
    à comparer avec la version "qui fonctionne" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     	<script type="text/javascript">
    	function modifcombo()
    	{
    		var nom_categorie = document.form1.selectcategorie.value;
    		document.location.replace("ListeslieesModif.php?categorie=" + nom_categorie );
    	}
    	</script>
    Au fait, c'est AUSSI nom_categorie qui est transmis à ListeslieesModif.php (ListeslieesModif.php?categorie=" + nom_categorie)
    -> ca entrainera sans aucun doute AUSSI des modifications dans ce fichier.

  2. #22
    Invité
    Invité(e)
    Par défaut
    Je me permets une réflexion.

    Tu avais un code qui fonctionnait bien.

    Tu as déjà fait plusieurs autres codes (sans Ajax, avec Ajax, avec xajax...)

    -> POURQUOI vouloir (encore !) CHANGER le code ????

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Jreaux62,
    Je n'y arrive pas et je crois que c'est impossible tel quel et comment demander le nom_selection where nom_categorie alors que seul existe l'id_categorie, l'id et nom_selection dans la table T_SELECTIONS
    Je suis heureuse d'avoir enfin pu réaliser une variante de cette méthode que je joint ci-dessous et qui fonctionne très bien avec avantage de ne faire qu'une seule requête supplémentaire au lieu de deux dans la toute première méthode étudiée:
    CODE du Formulaire:
    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
    82
     
    <?php
    // connexion a la base de donnees
    require_once('connect-bd.php');
     
    // initialisation/recuperation des différentes selections
    // categorie
    if (isset($_GET['categorie'])){
    	$categorie= $_GET['categorie'];}
    ?>
    <!DOCTYPE HTML>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
    	<title>Document sans titre</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    	 	<script type="text/javascript">
    	function modifcombo() 	{
    	var id_categorie = document.form1.selectcategorie.value;
    	document.location.replace("ListeslieesModifSelec.php?categorie=" +id_categorie );	}
    	</script>
    </head>
    <body>
    	<p>Essai formulaire</p>
     
    	<form name="form1" method="post" action="ListeslieesModifRepSelec.php">
    	<table width="100%" border="1">
    	<tr>
    	    <td>categorie:</td>
    		<td>
    			<select id="idselectcategorie" name="selectcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
    				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
    <?php	
    		// Execution requete : tous les categories
    				$ma_req = "SELECT * FROM T_CATEGORIES;";					  
    				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
     
    				// Affectation des variables utilisees pour l'affichage
    				if (mysql_num_rows($res_req)!=0) { // resultat non vide
    					while ($une_ligne = mysql_fetch_array($res_req)) {
    						$id_categorie = $une_ligne["id_categorie"];
    						$nom_categorie = $une_ligne["nom_categorie"];
    						$sel_categorie = ($id_categorie == $categorie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
    ?>
    				<option value="<?php echo $id_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
    <?php				} // fin while
    				} // fin if
    ?> 
    			</select>
    		</td>
    	</tr>
    	<tr>
    		<td>selection :</td>   
            <td>
    			<select id="idselectselection" name="selectselection" class="txt16-000000">		
    				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
    <?php	  		// Execution requete : les selection des catégories selectionnées 
    			$ma_req = "SELECT* FROM T_SELECTIONS WHERE id_categorie = '".$categorie."';";
    				$res_req = mysql_query($ma_req) or die("Selection table \"T_SELECTIONS\" impossible");
    				// Affectation des variables utilis?es pour l'affichage
    				if (mysql_num_rows($res_req)!=0) // resultat non vide
    				{  
    					while ($une_ligne = mysql_fetch_array($res_req)) {
    						$id_selection = $une_ligne["id_selection"];
    						$nom_selection = $une_ligne["nom_selection"];
    						$sel_selection = ($nom_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
    ?>
    				<option value="<?php echo $nom_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
    <?php				} // fin while
    				} // fin if
    ?> 
    			</select>
    		</td>
    	</tr>
    	<tr>
            <td colspan="2">
    			<input type="submit" name="envoyer" value="envoyer" />
    		</td>
    	</tr>
    	</table>
    	</form>
    </body>
    </html>
    CODE Réponse:
    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
     
    <?php
    // RECUPERATION depuis le formulaire
    // id_categorie
    if (isset($_POST['selectcategorie'])){
    	$categorie = $_POST['selectcategorie'];
    } else {
    	$selectcategorie = '';
    }
    // id_selection
    if (isset($_POST['selectselection'])){
    	$nom_selection = $_POST['selectselection'];
    } else {
    	$nom_selection = '';
    }
    // connection à la DB
    require_once('connect-bd.php');
    $ma_req = "SELECT nom_categorie FROM T_CATEGORIES WHERE  id_categorie='".$categorie."';";
     
    				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
    				// Affectation des variables utilisees pour l'affichage
    				if (mysql_num_rows($res_req)!=0) { // resultat non vide
    					while ($une_ligne = mysql_fetch_array($res_req)) {
    					//$id_categorie = $une_ligne["id_categorie"];
    					$nom_categorie = $une_ligne["nom_categorie"];
    						$sel_categorie = ($nom_categorie == $categorie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
    ?>
    				<option value="<?php echo $nom_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
    <?php				} // fin while
    				} // fin if
    ?> 
    			</select>
    		</td>
    	</tr>
    	<?php
    // information pour la connection à le DB
    require_once('connexion-bdCoord.php');
     
     
    // connection à la DB
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
           $select = "SELECT id,cat,selection,nom,prenom,numtel,codepostal,ville FROM coordonnees WHERE  cat='".$nom_categorie."' AND selection='".$nom_selection."';";
     
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // debut du tableau
    	//echo $selection;
        echo '<table bgcolor="FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
     
    		echo '<td bgcolor="#669999"><b><u>selection</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>prenom</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>numtel</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>codepostal</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>ville</u></b></td>';
    		echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
    		echo '<td bgcolor="#CCCCCC">'.$row["selection"].'</td>';
            echo '<td bgcolor="#90EE90">'.$row["nom"].'</td>';
            echo '<td bgcolor="#90EE90">'.$row["prenom"].'</td>';
    		echo '<td bgcolor="#9ACD32">'.$row["numtel"].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row["codepostal"].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row["ville"].'</td>';
    		echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
    // on libère le résultat
    mysql_free_result($result);
    ?>
    Quant à la réponse à votre deuxième message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -> POURQUOI vouloir (encore !) CHANGER le code ????
    Tout simplement pour étudier et approndir la compréhension et l'influence des différentes relations.Cela me m'interresse pas d'avoir quelque chose si je n'y comprends rien.
    Ainsi donc je peux maintenant passer avec Ajax si vous voulez-bien m'aider car dans ce cas précis les 2 listes liées fonctionnent très bien,mais comment afficher les données choisies par les clients(de la 3ème table coordonnées) dans un tableau puisqu'il n'y pas de rechargement de la page, il faut certainement un tableau spécial?
    je compte sur vous pour franchir ce dernier obstacle car j'oublie pour la suite xajax où personne ne peut m'aider(elle ne fonctionne pas)
    Sincères remerciements Jreaux
    Claudine

  4. #24
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par Claudine Voir le message
    Je suis heureuse d'avoir enfin pu réaliser une variante de cette méthode que je joint ci-dessous et qui fonctionne très bien avec avantage de ne faire qu'une seule requête supplémentaire au lieu de deux dans la toute première méthode étudiée
    C'est déjà bien
    Mais... sais-tu au moins expliquer pourquoi tu n'as besoin que d'une seule requête ?

    D'autre part, tu ne pourras jamais bien comprendre si tu ne sais pas nommer correctement tes variables, et vérifier la cohérence de ton code :
    if (isset($_POST['selectcategorie'])){
    $categorie = $_POST['selectcategorie'];
    } else {
    $selectcategorie = '';
    }
    Tu tombes alors sur un résultat (presque) correct presque par pur hasard...

    Sois donc plus rigoureuse dans l'écriture et la vérification du code.

    Je suis prêt à t'aider à progresser, et à continuer.
    Mais pour l'instant (vois ca comme un exercice), la meilleure façon de montrer que tu as bien compris ton code :
    -> corrige ton code (incohérences + mets des variables explicites) ;
    -> explique, avec des mots, comment ca fonctionne (enchainement des actions, quelles sont les données transmises et récupérées...).

  5. #25
    Invité
    Invité(e)
    Par défaut
    Voici un petit QUIZZ, rien que pour toi :
    nb : il peut y avoir plusieurs bonnes réponses !

    A/ Voici une balise <input> (par exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form name="form1" method="post" action="fichier-traitement.php">
    	<input type="text" id="idchoix" name="choix" onChange="javascript: modifcombo();"/>
    </form>
    A1/ Dans fichier-traitement.php (Traitement PHP), quel attribut sert à récupérer le nom de cet input ?
    - a11/ $recup_choix = $_POST['idchoix'];
    - a12/ $recup_choix = $_POST['choix'];

    A2/ Dans modifcombo() (en JavaScript donc), comment récupérer la valeur de l'input ?
    - a21/ var val_choix = document.form1.idchoix.value;
    - a22/ var val_choix = document.form1.choix.value;
    - a23/ var val_choix = document.getElementById('idchoix').value;
    - a24/ var val_choix = document.getElementById('choix').value;

    A3/ Quel évènement déclenche modifcombo() ?
    - a31/ un clic sur l'input
    - a32/ un clic sur le bouton "envoyer" du formulaire
    - a33/ dès le chargement de la page
    - a34/ après avoir tapé du texte dans l'input
    B/ Si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<input type="text" id="ididchoix" name="idchoix"/>
    B1/ quel attribut sert à récupérer le nom de cet input ?
    - b11/ $recup_choix = $_POST['idchoix'];
    - b12/ $recup_choix = $_POST['ididchoix'];

    B2/ Dans modifcombo() comment récupérer la valeur de l'input ?
    - b21/ var val_choix = document.form1.idchoix.value;
    - b22/ var val_choix = document.form1.ididchoix.value;
    - b24/ var val_choix = document.getElementById('ididchoix').value;
    - b23/ var val_choix = document.getElementById('idchoix').value;

    B3/ Convention d'écriture (personnelle !) : pourquoi ai-je écrit id="ididchoix" ?
    - c31/ le 1er est l'attribut id="...." - le 2ème id montre que la variable se réfère à un attribut id="...." ; le 3ème id fait référence à un identifiant dans la bdd (champ id, auto-incrément) ;
    - c32/ comme ca, pour faire beau ;
    - c33/ pour bien différencier explicitement les noms des variables dans id="..." et name="..." (et faciliter le débogage).

    B4/ Convention d'écriture (personnelle !) : dans name="idchoix", à quoi correspond id ?
    - c41/ id fait référence à un identifiant dans la bdd (champ id, auto-incrément) ;
    - c42/ id montre que c'est un attribut id="....";
    - c43/ pour faire parler les curieux.
    bon courage !

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Jreaux62
    Voici la copie avec (XXXXX) pour les réponses personnelles
    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
     
    Code :<form name="form1" method="post" action="fichier-traitement.php">
    	<input type="text" id="idchoix" name="choix" onChange="javascript: modifcombo();"/>
    </form> Citation:
    A1/ Dans fichier-traitement.php (Traitement PHP), quel attribut sert à récupérer le nom de cet input ?
    - a11/ $recup_choix = $_POST['idchoix'];
    - a12/ $recup_choix = $_POST['choix'];    XXXXXXXX
     
    A2/ Dans modifcombo() (en JavaScript donc), comment récupérer la valeur de l'input ?
    - a21/ var val_choix = document.form1.idchoix.value;
    - a22/ var val_choix = document.form1.choix.value;  XXXXXX
    - a23/ var val_choix = document.getElementById('idchoix').value;
    - a24/ var val_choix = document.getElementById('choix').value;  XXXXXX
     
    A3/ Quel évènement déclenche modifcombo() ?
    - a31/ un clic sur l'input  XXXXXX
    - a32/ un clic sur le bouton "envoyer" du formulaire
    - a33/ dès le chargement de la page
    - a34/ après avoir tapé du texte dans l'input
    [CODE]
    Si j'écris :

    Code :Sélectionner tout - Visualiser dans une fenêtre à part <input type="text" id="ididchoix" name="idchoix"/>Citation:
    B1/ quel attribut sert à récupérer le nom de cet input ?
    - b11/ $recup_choix = $_POST['idchoix']; XXXXXX
    - b12/ $recup_choix = $_POST['ididchoix'];

    B2/ Dans modifcombo() comment récupérer la valeur de l'input ?
    - b21/ var val_choix = document.form1.idchoix.value; XXXXXX
    - b22/ var val_choix = document.form1.ididchoix.value;
    - b24/ var val_choix = document.getElementById('ididchoix').value;
    - b23/ var val_choix = document.getElementById('idchoix').value; XXXX

    B3/ Convention d'écriture (personnelle !) : pourquoi ai-je écrit id="ididchoix" ?
    - c31/ le 1er est l'attribut id="...." - le 2ème id montre que la variable se réfère à un attribut id="...." ; le 3ème id fait référence à un identifiant dans la bdd (champ id, auto-incrément) ;
    - c32/ comme ca, pour faire beau ;
    - c33/ pour bien différencier explicitement les noms des variables dans id="..." et name="..." (et faciliter le débogage). XXXXXX

    B4/ Convention d'écriture (personnelle !) : dans name="idchoix", à quoi correspond id ?
    - c41/ id fait référence à un identifiant dans la bdd (champ id, auto-incrément) ;
    - c42/ id montre que c'est un attribut id="...."; XXXXX
    - c43/ pour faire parler les curieux.
    /CODE]
    J'ose espérer avoir bien répondu aux questions et si tel est le cas, je vous ferai parvenir le formulaire corrigé et l'affichage dans le tableau.
    Merci Jreaux pour votre collaboration.
    Claudine

  7. #27
    Invité
    Invité(e)
    Par défaut
    Voici les réponses :
    A1/ Dans fichier-traitement.php (Traitement PHP), quel attribut sert à récupérer le nom de cet input ?
    - a11/
    - VRAI-OK a12/ $recup_choix = $_POST['choix']; XXXXXXXX
    La valeur est récupérée en PHP grâce à l'attribut name="..."

    A2/ Dans modifcombo() (en JavaScript donc), comment récupérer la valeur de l'input ?
    - a21/
    - VRAI-OK a22/ var val_choix = document.form1.choix.value; XXXXXX
    - VRAI a23/ var val_choix = document.getElementById('idchoix').value;
    - FAUX a24/ XXXXXX
    getElementById('...') !! on voit ...Id() (par id !) ! -> c'est donc l'attribut id="..." !

    A3/ Quel évènement déclenche modifcombo() ?
    - FAUX a31/ un clic sur l'input XXXXXX
    - a32/
    - a33/
    - VRAI a34/ après avoir tapé du texte dans l'input
    C'est le onchange(...) : donc, quand la valeur entrée change

    B1/ quel attribut sert à récupérer le nom de cet input ?
    - VRAI-OK b11/ $recup_choix = $_POST['idchoix']; XXXXXX
    - b12/
    La valeur est récupérée en PHP grâce à l'attribut name="..."

    B2/ Dans modifcombo() comment récupérer la valeur de l'input ?
    - VRAI-OK b21/ var val_choix = document.form1.idchoix.value; XXXXXX
    - b22/
    - VRAI b24/ var val_choix = document.getElementById('ididchoix').value;
    - FAUX b23/ XXXXXX
    getElementById('...') !! on voit ...Id() (par id !) ! -> c'est donc l'attribut id="..." !

    B3/ Convention d'écriture (personnelle !) : pourquoi ai-je écrit id="ididchoix" ?
    - VRAI c31/ le 1er est l'attribut id="...." - le 2ème id montre que la variable se réfère à un attribut id="...." ; le 3ème id fait référence à un identifiant dans la bdd (champ id, auto-incrément) ;
    - c32/
    - VRAI-OK c33/ pour bien différencier explicitement les noms des variables dans id="..." et name="..." (et faciliter le débogage). XXXXXX
    Convention d'écriture (personnelle !)

    B4/ Convention d'écriture (personnelle !) : dans name="idchoix", à quoi correspond id ?
    - VRAI c41/ id fait référence à un identifiant dans la bdd (champ id, auto-incrément) ;
    - FAUX c42/ XXXXX
    - c43/
    name="..." est le name !!
    -> Si je met "idchoix", c'est pour bien distinguer qu'il s'agit d'un id (index, auto-incrémenté) de champ de base de données.
    Ton score : 5/10.
    C'est TRES moyen...
    Tu ne sais pas faire la différence entre l'utilisation de id="...", ou de name=..."

    Bref, il est important que tu comprennes et maitrises l'utilisation de ces attributs id="..." et name=...".
    Sinon, tu vas rester dans le brouillard...
    Dernière modification par Invité ; 19/09/2011 à 16h21.

  8. #28
    Invité
    Invité(e)
    Par défaut
    Voilà un petit fichier simple, à étudier :
    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
    <?php 
    if(isset($_POST['choix'])) {
    	$php_choix = $_POST['choix'];
    } else {
    	$php_choix = '';
    }
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    	<title>test</title>
    	<script type="text/javascript">
    	function affichetexte()
    	{
    		var js_choix = document.getElementById('idchoix').value;
    		document.getElementById('affichage-js').innerHTML = js_choix;
    	}
    	</script>
     
    </head>
    <body>
     
    	<p>1/ entrer une valeur,<br />
    	2/ puis cliquer en dehors de l'input)<br />
    	3/ cliquer après sur le bouton "submit"</p>
    <form name="form1" method="post" action="#">
    	<p><input type="text" id="idchoix" name="choix" onChange="javascript: affichetexte();"/></p>
    	<p><input type="submit" name="btsumit" value="submit"/></p>
    </form>
    <p>la valeur choisie est :</p>
    <div>Avec Javascript (AVANT submit) : <b><span id="affichage-js"></b></span></div>
    <div id="affichage-php">Avec PHP (APRES submit) : <b><?php echo $php_choix; ?></b></div>
     
    </body>
    </html>

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Jreaux62,
    Merci pour votre collaboration.
    Ce petit fichier montre bien la différence entre l'utilisation de id="...", ou de name=...", entre affichage-php et affichage_js.
    J'ai donc modifier les variables de mes fichiers précédents.
    Puis-je te demander de vérifier ces derniers?
    Fichier formulaire
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <?php
     
    // connexion a la base de donnees
    require_once('connect-bd.php');
     
    // initialisation/recuperation des différentes selections
    // categorie
    if (isset($_GET['choixidcategorie'])){
    	$categorie= $_GET['choixidcategorie'];}
     
    ?>
    <!DOCTYPE HTML>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
    	<title>Document sans titre</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    	 	<script type="text/javascript">
    	function modifcombo() 	{
    	var nom_categorie = document.form1.choisircategorie.value;
    	document.location.replace("FLLessai.php?choixidcategorie=" +nom_categorie );	}
    	</script>
    </head>
    <body>
    	<p>Essai formulaire</p>
     
    	<form name="form1" method="post" action="FLLessaiReponse.php">
    	<table width="100%" border="1">
    	<tr>
    	    <td> categorie:</td>
    		<td>
    			<select id="idchoisircategorie" name="choisircategorie" class="txt16-000000" onChange="javascript: modifcombo();">
    				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
    <?php	
    		// Execution requete : tous les categories
    				$ma_req = "SELECT * FROM T_CATEGORIES;";					  
    				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
     
    				// Affectation des variables utilisees pour l'affichage
    				if (mysql_num_rows($res_req)!=0) { // resultat non vide
    					while ($une_ligne = mysql_fetch_array($res_req)) {
    						$id_categorie = $une_ligne["id_categorie"];
    						$nom_categorie = $une_ligne["nom_categorie"];
    						$sel_categorie = ($id_categorie == $categorie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
    // on récupère la valeur id_categorie						
    ?>
    				<option value="<?php echo $id_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
    <?php				} // fin while
    				} // fin if
    ?> 
    			</select>
    		</td>
    	</tr>
    	<tr>
     
    		<td> selection :</td>   
            <td>
    			<select id="idchoisirselection" name="choisirselection" class="txt16-000000">		
    				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
    <?php
    // connexion à la DB
     
     
     
    	  		// Execution requete : les selection des catégories selectionnées 
    			$ma_req = "SELECT * FROM T_SELECTIONS WHERE id_categorie = '".$categorie."';";
    				$res_req = mysql_query($ma_req) or die("Selection table \"T_SELECTIONS\" impossible");
    				// Affectation des variables utilis?es pour l'affichage
    				if (mysql_num_rows($res_req)!=0) // resultat non vide
    				{  
    					while ($une_ligne = mysql_fetch_array($res_req)) {
    						$id_selection = $une_ligne["id_selection"];
    						$nom_selection = $une_ligne["nom_selection"];
    						$sel_selection = ($nom_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
    // On récupère ainsi la variable $nom_selection						
    ?>
    				<option value="<?php echo $nom_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
    <?php				} // fin while
    				} // fin if
     
    ?> 
    			</select>
    		</td>
    	</tr>
    	<tr>
            <td colspan="2">
    			<input type="submit" name="envoyer" value="envoyer" />
    		</td>
    	</tr>
    	</table>
    	</form>
    </body>
    </html>
    Fichier réponse: affichage du tableau
    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
    82
    83
    84
    85
    86
    87
    88
     
    <?php
    // RECUPERATION depuis le formulaire
    // choix de l'id_categorie
    if (isset($_POST['choisircategorie'])){
    	$categorie = $_POST['choisircategorie'];
    	// Affichage du choix de l'Id_categorie
     
    } else {
    	$categorie = '';
    }
    // choix du nom_selection
    if (isset($_POST['choisirselection'])){
    	$selection = $_POST['choisirselection'];
    //echo $selection;":";
    } else {
    	$selection = '';
    }
    ?>
    <?php
    // connexion a la base de donnees
    require_once('connect-bd.php');
    // AVANT DE FAIRE LA REQUETE -> PROTECTION contre INJECTION SQL 
    $bd_id_categorie = mysql_real_escape_string($categorie);
     
    // recuperation de nom_categorie A PARTIR de $_POST[choisircategorie]
    $cat_select = "SELECT nom_categorie FROM T_CATEGORIES WHERE id_categorie= '" .$categorie. "';"; 
     
    $cat_result = mysql_query($cat_select,$link) or die ('Erreur : '.mysql_error() );
    $cat_row =  mysql_fetch_array($cat_result);
    $nom_categorie = $cat_row['nom_categorie']; // => QU'ON POURRA ALORS UTILISER dans la requête sur la table "coordonnees"
     
    echo $nom_categorie;// vérification de l'affichage de la variable $nom_categorie
    echo ":";
    // recuperation de nom_selection A PARTIR de $_POST[choisirselection]qui est égal à $selection
    // AVANT DE FAIRE LA REQUETE -> PROTECTION contre INJECTION SQL 
     
    $bd_id_selection = mysql_real_escape_string($selection);
     
    // recuperation de nom_selection A PARTIR de $_POST[choisirselection] qui est égal à $selection
    $choisirselection_select = "SELECT nom_selection FROM T_SELECTIONS WHERE id_selection= '" . $selection . "';"; 
    $choisirselection_result = mysql_query($choisirselection_select,$link) or die ('Erreur : '.mysql_error() );
    $choisirselection_row =  mysql_fetch_array($choisirselection_result);
    $nom_selection = $choisirselection_row['nom_selection'];
    echo $selection
     
    ?>
    <?PHP
    require_once('connexion-bdCoord.php');
    // connection à la DB
     
       //    $select = "SELECT * FROM coordonnees WHERE  cat='$_POST[nom_categorie]' AND selection='$_POST[nom_selection]'";
           $select = "SELECT id,cat,selection,nom,prenom,numtel,codepostal,ville FROM coordonnees WHERE  cat='".$nom_categorie."' AND selection='".$selection."'";
     
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // debut du tableau
    	//echo $selection;
        echo '<table bgcolor="FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
    		echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>prenom</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>numtel</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>codepostal</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>ville</u></b></td>';
    		echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
     
            echo '<td bgcolor="#90EE90">'.$row["nom"].'</td>';
            echo '<td bgcolor="#90EE90">'.$row["prenom"].'</td>';
    		echo '<td bgcolor="#9ACD32">'.$row["numtel"].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row["codepostal"].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row["ville"].'</td>';
    		echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
    ?>
    Sincères remerciements
    Claudine

  10. #30
    Invité
    Invité(e)
    Par défaut
    Bonjour Claudine,
    je regarderai ça cet après-midi, ok ?

  11. #31
    Invité
    Invité(e)
    Par défaut
    J'ai modifié tes fichiers, en mettant des NOMS DE VARIABLES EXPLICITES,
    et tous différents, pour bien les différencier, et comprendre leur utilisation.

    -> compare avec TES codes ci-dessus, ok?
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <?php
    // connexion a la base de donnees
    require_once('connect-bd.php');
     
    // initialisation/recuperation des différentes selections
    // categorie
    if (isset($_GET['choixidcat'])){
    	$idcategorie_choisie = $_GET['choixidcat']; 
    } else {
     
    }
    ?>
    <!DOCTYPE HTML>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
    	<title>Document sans titre</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    	 	<script type="text/javascript">
    	function modifcombo() 	{
    //		var choix_idcategorie = document.form1.choisir-idcategorie.value; // bien
    		var choix_idcategorie = document.getElementById('idchoisir-idcategorie').value; // mieux
    		document.location.replace("FLLessai.php?choixidcat=" +choix_idcategorie );	
    	}
    	</script>
    </head>
    <body>
    	<p>Essai formulaire</p>
     
    	<form name="form1" method="post" action="FLLessaiReponse.php">
    	<table width="100%" border="1">
    	<tr>
    	    <td> categorie:</td>
    		<td>
    			<select id="idchoisir-idcategorie" name="choisir-idcategorie" class="txt16-000000" onChange="javascript: modifcombo();">
    				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
    <?php 		// LISTE : ID_categorie
    			// Execution requete : tous les categories
    				$ma_req = "SELECT * FROM T_CATEGORIES;";					  
    				$res_req = mysql_query($ma_req) or die("Selection table \"T_CATEGORIES\" impossible");
     
    				// Affectation des variables utilisees pour l'affichage
    				if (mysql_num_rows($res_req)!=0) { // resultat non vide
    					while ($une_ligne = mysql_fetch_array($res_req)) {
    						$id_categorie = $une_ligne["id_categorie"];
    						$nom_categorie = $une_ligne["nom_categorie"];
    						$sel_categorie = ($id_categorie == $idcategorie_choisie)? ' selected="selected"' : ''; // option selectionnee ? oui : non
    // on récupère la valeur id_categorie						
    ?>
    				<option value="<?php echo $id_categorie; ?>"<?php echo $sel_categorie; ?>><?php echo $nom_categorie; ?></option>
    <?php				} // fin while
    				} // fin if
    ?> 
    			</select>
    		</td>
    	</tr>
    	<tr>
     
    		<td> selection :</td>   
            <td>
    			<select id="idchoisir-nomselection" name="choisir-nomselection" class="txt16-000000">		
    				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
    <?php 		// LISTE : NOM_selection
    	  		// Execution requete : les selection des catégories selectionnées 
    			$ma_req = "SELECT * FROM T_SELECTIONS WHERE id_categorie = '".$idcategorie_choisie."';";
    				$res_req = mysql_query($ma_req) or die("Selection table \"T_SELECTIONS\" impossible");
    				// Affectation des variables utilis?es pour l'affichage
    				if (mysql_num_rows($res_req)!=0) // resultat non vide
    				{  
    					while ($une_ligne = mysql_fetch_array($res_req)) {
    						$id_selection = $une_ligne["id_selection"];
    						$nom_selection = $une_ligne["nom_selection"];
    						$sel_selection = ($nom_selection == $selection)? ' selected="selected"' : ''; // option selectionnee ? oui : non
    ?>
    				<option value="<?php echo $nom_selection; ?>"<?php echo $sel_selection; ?>><?php echo $nom_selection; ?></option>	
    <?php				} // fin while
    				} // fin if
     
    ?> 
    			</select>
    		</td>
    	</tr>
    	<tr>
            <td colspan="2">
    			<input type="submit" name="envoyer" value="envoyer" />
    		</td>
    	</tr>
    	</table>
    	</form>
    </body>
    </html>
    J'ai aussi sorti le code html du code PHP.
    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
    82
    83
    84
    85
    86
    87
    88
    <?php
    // RECUPERATION depuis le formulaire
    // choix de l'id_categorie
    if (isset($_POST['choisir-idcategorie'])){
    	$recup_idcategorie = $_POST['choisir-idcategorie'];
    	// Affichage du choix de l'Id_categorie
     
    } else {
    	$recup_idcategorie = '';
    }
    // choix du nom_selection
    if (isset($_POST['choisir-nomselection'])){
    	$recup_nomselection = $_POST['choisir-nomselection'];
    //echo $recup_nomselection;":";
    } else {
    	$recup_nomselection = '';
    }
    ?>
    <?php
    // connexion a la base de donnees
    require_once('connect-bd.php');
     
    // REQUETE : recuperation de nom_categorie (a partir de id_categorie)
    $bd_idcategorie = mysql_real_escape_string($recup_idcategorie); // AVANT DE FAIRE LA REQUETE -> PROTECTION contre INJECTION SQL
    $nomcat_select = "SELECT nom_categorie FROM T_CATEGORIES 
    			WHERE id_categorie= '" .$bd_idcategorie. "';"; 
    $nomcat_result = mysql_query($nomcat_select,$link) or die ('Erreur : '.mysql_error() );
     
    $nomcat_row =  mysql_fetch_array($nomcat_result);
    $nom_categorie = $nomcat_row['nom_categorie']; // => QU'ON POURRA ALORS UTILISER dans la requête sur la table "coordonnees"
     
    // !!!! cette partie est INUTILE : !!!!
    // REQUETE : recuperation de nom_selection (!!!!!! a partir de ... nom_selection !!!!!)
    //$bd_nomselection = mysql_real_escape_string($recup_nomselection); // AVANT DE FAIRE LA REQUETE -> PROTECTION contre INJECTION SQL
    //$nomsel_select = "SELECT nom_selection FROM T_SELECTIONS 
    //			WHERE id_selection= '" . $bd_nomselection . "';"; 
    //$nomsel_result = mysql_query($nomsel_select,$link) or die ('Erreur : '.mysql_error() );
     
    //$nomsel_row =  mysql_fetch_array($nomsel_result);
    //$nom_selection = $nomsel_row['nom_selection']; 
    ?>
    <?php
    // require_once('connexion-bdCoord.php'); // !!!!! C'EST QUOI ca ????
    // connection à la DB
     
    // REQUETE : toutes les données de la table "coorodonnees"
    $select = "SELECT id, cat, selection, nom, prenom, numtel, codepostal, ville FROM coordonnees 
    		WHERE cat = '".$nom_categorie."' 
    		AND selection = '".$recup_nomselection."';";
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
    ?>
    	 <!-- debut du tableau -->
    	 <table bgcolor="FFFFFF">
            <!-- première ligne on affiche les titres -->
    		<tr>
    			<th bgcolor="#669999"><b><u>nom</u></b></th>
    			<th bgcolor="#669999"><b><u>prenom</u></b></th>
    			<th bgcolor="#669999"><b><u>numtel</u></b></th>
    			<th bgcolor="#669999"><b><u>codepostal</u></b></th>
    			<th bgcolor="#669999"><b><u>ville</u></b></th>
    		</tr>
    <?php	// lecture et affichage des résultats, 1 résultat par ligne.    
    		while($row = mysql_fetch_array($result)) {
    ?>
    		<tr>
    			<td bgcolor="#90EE90"><?php echo $row["nom"]; ?></td>
    			<td bgcolor="#90EE90"><?php echo $row["prenom"]; ?></td>
    			<td bgcolor="#9ACD32"><?php echo $row["numtel"]; ?></td>
    			<td bgcolor="#CCCCCC"><?php echo $row["codepostal"]; ?></td>
    			<td bgcolor="#CCCCCC"><?php echo $row["ville"]; ?></td>
    		</tr>
    <?php	} ?>
    	</table> <!-- fin du tableau -->
    <?php
    } else {
    ?>
    	Pas d'enregistrements dans cette table...
    <?php
    }
    ?>
     
    <?php // on libère le résultat
    mysql_free_result($result);
    ?>
    Regarde bien CHAQUE variable -> cherche, trouve et comprends bien à quoi elle sert.

    Et pour la structure de la <table> -> Les tableaux (XHTML & CSS)
    Bonne journée
    Dernière modification par Invité ; 22/09/2011 à 15h45.

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonjour Jreaux62,
    Comment vous remercier pour cet énorme travail de compréhension: j'ai pu adapter des autres logiciels en tenant compte de vos remarques.
    Je viens de reprendre le logiciel(tutoriel Ajax) pour faire afficher les coordonnées clients dans un tableau HTML comme pour javascript. C'est OK preuve qu'il y a un progrès énorme grâce à vous.
    Il subsiste cependant un doute dans mon esprit: à savoir:
    je lis sur internet qu'avec Ajax il n'y a pas de rechargement de la page mais j'ai bien une autre page qui réaffiche le tableau HTML.
    Est-ce normal ou c'est moi qui ne comprends pas cette expression?
    Veux-tu m'éclairer une toute dernière fois?
    Sincères remerciements
    Claudine

  13. #33
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Claudine Voir le message
    je lis sur internet qu'avec Ajax il n'y a pas de rechargement de la page mais j'ai bien une autre page qui réaffiche le tableau HTML.
    Est-ce normal ou c'est moi qui ne comprends pas cette expression?
    Bonjour chère Claudine,
    désolé d'avoir tardé à répondre... (le boulot a repris ! c'est bon signe !)

    D'abord : bravo pour ta progression ! et merci (si j'y suis pour quelque chose). J'en suis ravi.

    Concernant Ajax, tu as bien lu et compris le fonctionnement.
    Par contre, Ajax n'est pas une "baguette magique" !
    Si on ne veux pas recharger la page, il faut... effectivement utiliser Ajax !
    Ce qui n'est pas le cas quand tu ré-affiches le tableau HTML !

    ps : quelle que soit ta question, n'hésite pas à la poser !
    Je serai toujours disponible pour toi.
    Et tout DVP aussi !

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Points : 95
    Points
    95
    Par défaut
    Bonsoir JREAUX62
    Comment afficher les données semblables au tableau HTML(categorie,selection,nom, prenom, numtel,codepostal, ville) et qui proviennent de la table 'coordonnees' après choix par clic sur la liste"categorie" et clic sur la 2ème liste"selection" sans rechargement de la page autrement dit afficher directement les résultats sur la page du formulaire?
    j'attends votre aide pour résoudre ce problème.
    Remerciements
    Claudine

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2014, 11h45
  2. Réponses: 1
    Dernier message: 02/12/2011, 10h46
  3. Réponses: 1
    Dernier message: 29/05/2010, 18h22
  4. relation entre 2 liste déroulantes
    Par all4youweb dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/01/2010, 15h26
  5. [MySQL] liste déroulante alimentée par BDD
    Par mitch46000 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/06/2007, 15h14

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