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 :

Garder la valeur d'un select apres envoi du form


Sujet :

Langage PHP

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 101
    Points : 67
    Points
    67
    Par défaut Garder la valeur d'un select apres envoi du form
    Bonjour,

    J'ai 3 listes déroulantes liées en ajax (Région -> Départ -> Commune) créer suivant cette méthode : http://siddh.developpez.com/articles/ajax/#LIV-A

    Je n'arrive pas garder la valeur du 2 ème et 3 ème select après envoi du formulaire, pouvez vous m'aider.

    Voici mon code simplifier pour aller droit au but :

    Fichier qui contient le formulaire (post.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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <script type='text/javascript'>
     
    			function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr;
    			}
     
     
    			function depart(){
    				var xhr = getXhr();
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						document.getElementById('divcity').innerHTML = leselect;
    					}
    				}
     
    				xhr.open("POST","lieu/departement.php",true);
     
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('countryid');
    				countryid = sel.options[sel.selectedIndex].value;
    				xhr.send("countryid="+countryid);
    			}
     
     
     
    			function ville(){
    				var xhr = getXhr();
    				xhr.onreadystatechange = function(){
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						document.getElementById('divarea').innerHTML = leselect;
    					}
    				}
     
    				xhr.open("POST","lieu/ville.php",true);
     
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				sel = document.getElementById('cityid');
    				cityid = sel.options[sel.selectedIndex].value;
    				xhr.send("cityid="+cityid);
    			}
     
    		</script>
     
    		<form action="post.php" method="post" name="frmPost" enctype="multipart/form-data">
    		<div class="labelform" style="clear: left;">
    			<label for="region">Région</label>
    		</div>
    		<div class="adinput">
    			<select name='countryid' id='countryid' onchange='depart()'>
    			<option value=''> &laquo;Choisissez la région&raquo; </option>
    					<?
    						$res = mysql_query("SELECT countryid, countryname FROM $t_countries ct ORDER BY countryname");
    						while($row=mysql_fetch_array($res))
    								{
    								echo "<option value=\"$row[countryid]\"";
    								if ($row['countryid'] == $_REQUEST['countryid']) echo " selected";
    								echo "> $row[countryname]</option>"; 
    								}
    					?>
    			</select>
    		</div>
     
    		<div class="labelform" style="clear: left;">
    			<label for="D&eacute;partement">Département</label>
    		</div>
    		<div id='divcity' style='display:inline'>
    			<select name='cityid'>
    			<option value="-1">&laquo;Choisissez le département&raquo;</option>
    			</select>
    		</div>
     
     
    		<div class="labelform" style="clear: left;">
    			<label for="Commune">Commune</label>
    		</div>
    		<div id='divarea' style='display:inline'>
    			<select name='area'>
    			<option value="" selected="selected">&laquo;Choisissez la commune&raquo;</option>
    			</select>
    			<?php if($err_area) echo "<div style=\"display: block;\"><span class=\"error\">$err_area</span></div>"; ?>
    		</div>
    		</form>
    php du deuxième select (departement.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
    <?php
     
    			if(isset($_POST["countryid"])){
    			$sql = ("SELECT cityid, cityname FROM ".$t_cities." WHERE countryid = ".$_POST["countryid"]." ORDER BY cityname");
    			$res = mysql_query($sql);
    			if (mysql_num_rows($res))
    			{
    			?>
    			<select name='cityid' id='cityid' onchange='ville()'>
    			<option value="-1" > &laquo;Choisissez le d&eacute;partement&raquo;</option>
    			<?php
    				$other_index = 1;
    				while ($row = mysql_fetch_array($res))
    				{
    					$other_index++;
    					if($_REQUEST['cityid']==$row['cityid']) { $selectchoix=' selected="selected"'; } else { $selectchoix=''; }
    					echo '<option value="'.$row['cityid'].'"'.$selectchoix.'>'.$row['cityname'].'</option>';
     
     
    					//echo '<option value="'.$row['cityid'].'" '.(($data['cityid']==$row['cityid'])?'selected="selected"':'').'>'.$row['cityname'].'</option>'; 
    				}
    			?>
    			</select>
    			<?php
    				} 
    			}
    			?>
    php du troisième select (ville.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
    <?php
    			if(isset($_POST["cityid"])){ 
    			$sql = ("SELECT areaname FROM $t_areas WHERE cityid = ".$_POST["cityid"]." ORDER BY areaname");
    			$res = mysql_query($sql);
    			if (mysql_num_rows($res))
    			{
    			?>
    			<select name="area">
    			<option value="" selected="selected"> &laquo;Choisissez la commune&raquo; </option>
    			<?php
    				$other_index = 1;
    				while ($row = mysql_fetch_array($res))
    				{
    					$other_index++;
    					echo '<option value="'.$row[areaname].'"';
    					if ($data['area'] == $row['areaname']) echo ' selected="selected"';
    					echo '>'.$row[areaname].'</option>';
    				}
    			?>
    			</select>
     
    			<?php
    				} 
    			}
    			?>
    Merci pour votre aide

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 101
    Points : 67
    Points
    67
    Par défaut
    Je viens d'essayer ceci mais ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while ($row = mysql_fetch_assoc($res)) {
    if ($choix == $row["cityid"]) {
    echo '<option value="' . $row['cityid'] . '" selected>' . $row['cityname'] . '</option>';
    } else {
    echo '<option value="'.$row['cityid'] . '">' . $row['cityname'] . '</option>';
    }
    }

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/04/2014, 10h52
  2. [MySQL] Garder même valeur d'un select après actualisation
    Par Anibel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/11/2013, 06h55
  3. Conserver la valeur d'un select après validation
    Par Catalyst dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2012, 14h24
  4. Réponses: 21
    Dernier message: 01/09/2010, 20h40
  5. Réponses: 1
    Dernier message: 04/06/2006, 00h35

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