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 :

Select lié php uniquement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2004
    Messages : 17
    Par défaut Select lié php uniquement
    Bonjour à tous,

    Je suis en galère avec des SELECT liés sur un formulaire avec une gestion uniquement en PHP. (Oui AJAX et Javascript je maîtrise pas alors...)

    Le principe est simple, je gère une base de données contenant des sites, des directeurs de sites, financiers, rh ... positionnés sur un continent, pays et ville.
    Lors de la création d'une ville ou d'un site, j'enchaîne les select et les liés c'est quand même plus propre mais je bloque sur un point :

    Voici mon code :
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
     
    // (Je passe tous les tests et les connexions en base car tout ça fonctionne [...] ;)
     
    if (!isset($_POST['continent'])) { $_POST['continent'] = '';}
    // Retour après choix du SELECT Continent
    if(isset($_POST['continent']) && ($_POST['continent'] <> '')) {
    	$_SESSION['continent'] = $_POST['continent'];
    	$_SESSION['continent'] = Remplace_Char($j,$i,$_SESSION['continent']);
    	echo $_SESSION['continent'].'&nbsp;Session continent<br>';
    }
     
    // Retour après choix du SELECT PAYS
    if (!isset($_POST['pays'])) { $_POST['pays'] = ''; }
     
    if(isset($_POST['pays']) || isset($_SESSION['pays'])) {
    	$_SESSION['pays'] = $_POST['pays'];
    	$_SESSION['pays'] = Remplace_Char($j,$i,$_SESSION['pays']);	
    	echo $_SESSION['continent'].'&nbsp;Session continent<br>';
    	echo $_SESSION['pays'].'&nbsp;Session pays<br>';
    }
     
    // Retour après saisie de la ville
    if(isset($_POST['ville']) && ($_POST['ville'] <> '')) {
    	$ville = $_POST['ville'];
    	$sql = "SELECT * FROM villes WHERE ville = '$ville'";
    	$req = ExecReq($sql);  // Fonction créée pour appel plus rapide à la requête
    	$res = NbLigne($req);   // Idem que prédemment
    	// Si la ville n'existe pas
    	if ($res <> 0) {
    		// On récupère les identifiants des données récupérées dans les sessions
    		if (isset($_SESSION['continent']) && isset($_SESSION['pays'])) {
    			$continent = $_SESSION['continent'];
    			$pays = $_SESSION['pays'];
    		    $sql2 = "SELECT p.id_pays, c.id_continent FROM pays p, continent c 
    					WHERE c.continent = '$continent'
    					AND p.pays = '$pays';";
    			$req2 = ExecReq($sql2);
     
    			while ($data = mysql_fetch_array($req)) {
    				$id_continent = $data['id_continent'];
    				$id_pays = $data["id_pays"];
    			}
    			// On insère la donnée ville en base.
    			$sql3 = "INSERT INTO ville VALUE ('','$ville', $id_pays', '$id_continent');";
    			$req3 = ExecReq($sql3);
    			echo $sql3;
    			echo 'Vous avez int&eacute;t&eacute;gr&eacute; la ville $ville en base.<br />';
     
    			include('fiche_villes.php');
    			exit;
    		}
    	}
    	else {
    		echo "La ville saisie existe d&eacute;j&agrave;";
    		include('fiche_villes.php');
    		exit;
    	}
    }
     
    [...] Je passe également la partie HTML avec les en-têtes, appel CSS car par important... [...] ;)
     
    <FORM method="post" action="">
    	<div align="center" id="entete" class="cache">
    		<img src="../images/logo.png" height="53" width="400">
    		<div align="right"><a href="../includes/deconnexion.php">D&eacute;connexion</a></div>
    	</div>
     
    	<div align="center" valign="middle" id="corps">
    		<br><a href="../accueil/accueil.php" class="cache">Retour</a><br><br>
     
    		<fieldset><legend>Ajouter une ville :</legend>
    		<br><br>
    		<FORM method="post" action="">
     
    			<table id="table" class="print">
     
    			<TR><TD>Continent :</TD><TD>
    			<form id="id_continent"  method="post" action="">
     
     
     
    		    	<select id="continent" name="continent" onchange="this.form.submit()"> :calim2:
    		    	<!--ICI c'est un test de this.form.submit car le document.forms ne renvoie rien  || onchange="document.forms['id_continent'].submit();"-->
     
     
     
            			<?php
                		$sql = "SELECT * FROM continent ORDER BY continent ASC";
    			$req = ExecReq($sql);
     
    		            if (isset($_SESSION['continent'])) {
    		            	$data['continent'] = Remplace_Char($j,$i,$data['continent']);
    		            	echo "<option selected=".$_SESSION['continent'].">".$_SESSION['continent']."</option>";
    		            	$sql = "SELECT * FROM continent ORDER BY continent ASC";
    						$req = ExecReq($sql);
    						while ($data = mysql_fetch_array($req)) {
    							$data['continent'] = Remplace_Char($i,$j,$data['continent']);
    							if ($_SESSION['continent'] <> $data['continent']) {
    								echo "<option value=".$data['continent'].">".$data['continent']."</option>";
    							}
    						}
    		            }
    		            else {
    		            	$sql = "SELECT * FROM continent ORDER BY continent ASC";
    						$req = ExecReq($sql);
    						while ($data = mysql_fetch_array($req)) {
    							$data['continent'] = Remplace_Char($i,$j,$data['continent']);
    							echo "<option value=".$data['continent'].">".$data['continent']."</option>";
    						}	
    		            }
     
    		            ?>
    		    	</select>
    		    </form>
     
    		    </td></tr>		 
    			<form id="id_pays" method="post" action="">
    			<tr><td>Pays :</td><td>
     
     
    				<select name="pays" id="pays" onchange="document.forms['id_pays'].submit();"> // Et la ça fonctionne :_\	
     
     
    					<?php
    					if (isset($_SESSION['continent'])) {
    						$continent = $_SESSION['continent'];
    						if (isset($_SESSION['pays'])) {
    							echo "<option selected=".$_SESSION['pays'].">".$_SESSION['pays']."</option>";
     
    							$sql2 = "SELECT * FROM pays p, continent c 
    							WHERE c.continent = '$continent'
    							AND c.id_continent = p.id_continent;";
    							$req2 = ExecReq($sql2);
     
    							while ($data = mysql_fetch_array($req2)) {
    								$data['pays'] = Remplace_Char($i,$j,$data['pays']);
    								echo "<option value=".$data['pays'].">".$data['pays']."</option>";
    							}
    						}
    						else {
    							$sql2 = "SELECT * FROM pays p, continent c 
    							WHERE c.continent = '$continent'
    							AND c.id_continent = p.id_continent;";
    							$req2 = ExecReq($sql2);
     
    							while ($data = mysql_fetch_array($req2)) {
    								$data['pays'] = Remplace_Char($i,$j,$data['pays']);
    								echo "<option value=".$data['pays'].">".$data['pays']."</option>";
    							}	
    						}
    					}				
     
    				echo "</select></td></tr></form><tr><td>Ville :</td><td><input type=text name=ville value=$ville></td></tr>";
     
    				Deconnexion();
     
    			?>
     
    			</table>
    			<br><br>
    			<div align="center"><input type="submit" name="valider" value="Ajouter"></div>
    			</fieldset>
    		</FORM>
    En résumé, j'ai bien un retour sur les select mais dès que je saisie la ville, la partie continent dégage et seul le pays reste.
    Etant un peu rouillé sur le php je me suis pas encore habitué à la V7 mais qui pour moi ne pose aucun soucis dans le cas présent.

    Merci d'avance pour vos retours.

    Sadnotrue

  2. #2

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2004
    Messages : 17
    Par défaut
    Merci jreaux62, je vais tester ça je pensais m'en sortir à l'aide des sessions plus une validation le tout sur la même page...

    Je vais essayer de comprendre ce code et reviens valider si c'est ok.

    Merci encore.

Discussions similaires

  1. [VBA-E] Selection de valeur uniquement
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/05/2006, 23h28
  2. Récupération d'un Select en PHP
    Par Rekiem dans le forum Langage
    Réponses: 3
    Dernier message: 13/04/2006, 14h57
  3. [MySQL] Problème de Select en php bizarre!!!
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 04/04/2006, 15h02
  4. [ODBC] Probleme sur un SELECTED de SELECT avec PHP
    Par G.D.O dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 27/03/2006, 15h44
  5. select 'detail.php?id='||ID from table;
    Par XtofRoland dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/03/2006, 10h35

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