2013-03-28 8 views
1

J'ai simple code Nom du fichier: newEmptyPHP.phpboîte de sélection après soumettre

<form method="post" action="newEmptyPHP.php">Title: 
    <select name="title"> 
     <option value="select">Select</option>; 
     <option value="Dr" selected=<?php if(isset($_POST[ 'title'])=="Dr"){ echo "selected"; } ?>>Dr</option>'; 
     <option value="Prof">Prof</option>'; 
     <option value="Mr">Mr</option>'; 
     <option value="Ms">Ms</option>'; 
     <option value="Miss">Miss</option>'; 
     <option value="Mrs">Mrs</option>';</select> 
    <input type="submit" value="submit"> 
</form> 

Je veux garder choisi une valeur particulière qui a été sélectionné avant la soumission du formulaire. Mais je n'ai pas obtenu la sortie désirable. toute aide appréciée.

+0

faites-vous dans le menu déroulant avez dynamique ou statique – alwaysLearn

Répondre

2

changer cette

<option value="Dr" selected=<?php if(isset($_POST['title']) == "Dr") 
{ echo "selected"; } ?> >Dr</option>'; 

à

<option value="Dr" <?php if(isset($_POST['title']) && $_POST['title'] == "Dr") 
{ echo "selected='selected'"; } ?> >Dr</option>'; 
+0

Vous encore 'isset', qui est faux –

+0

@PrasanthBendra Oublié d'éditer cette partie. Merci de faire remarquer .. :) –

0

changement

<option value="Dr" selected=<?php if(isset($_POST['title']) == "Dr"){ echo "selected"; } ?> >Dr</option>'; 

Pour:

<option value="Dr" <?php if(isset($_POST['title']) && $_POST['title'] == "Dr"){ echo 'selected="selected"'; } ?> >Dr</option>'; 

1.Retirer isset où vous vérifiez pour la valeur, isset renvoie l'état true ou false
2.Make selected="selected intérieur if état

+0

sans 'isset' il peut montrer l'avis avant de soumettre. – Narek

+0

Mais c'est faux: isset ($ _ POST ['title']) == "Dr", Ce ne sera jamais vrai –

+0

Bien sûr, 'isset' renvoie bool. – Narek

0
<?php if(isset($_POST['title']) == "Dr"){ echo "selected"; } ?> 

Modification

<?php if(isset($_POST['title']) && $_POST['title'] == "Dr"){ echo "selected"; } ?> 

Mais mieux utiliser JS/jQuery. Exemple pour jQuery:

<?php if(isset($_POST['title']) && $_POST['title'] == "Dr"):?> 
    <script type="text/javascript"> 
    $(function(){ 
     $('select[name=title]').val('<?php echo html_special_chars($_POST[''title'])?>'); 
    }); 
    </script> 
<?php endif?> 
0

Je vous avez l'option mince statique values.If de sorte que le vous devez vérifier toutes les options comme ci-dessous pour un.

<form method="post" action="newEmptyPHP.php"> 
    Title:<select name="title" > 
           <option value="select" >Select</option>; 
<?php 
    $selected = ""; 
    if(isset($_POST['title']) && $_POST['title'] == "Dr") 
    { 
     $selected = 'selected="selected"'; 
    } 
?> 
<option value="Dr" <?php echo $selected; ?>>Dr</option> 
<option value="Prof">Prof</option> 
<option value="Mr">Mr</option> 
<option value="Ms">Ms</option> 
<option value="Miss">Miss</option> 
<option value="Mrs">Mrs</option> 
</select> 
<input type="submit" value="submit"> 
</form> 
0
<?php 
if($_POST['title'] == "Dr") 
{ ?> 
<option value="Dr" selected>Dr</option> 
<?php 
} 
else 
{ 
?> 
<?php 
<option value="Dr">Dr</option> 
<?php 
} 
?> 
0

Il y a une erreur dans votre code. isset(Something) renverra soit true ou false et ne retournera pas Dr que vous recherchez.

Retry avec ce

<form method="post" action="newEmptyPHP.php"> 
    Title:<select name="title" > 
       <option value="" >Select</option> 
       <option value="Dr" selected=<?php if(isset($_POST['title']) && $_POST['title'] == "Dr"){ echo "selected"; } ?> >Dr</option>'; 
       <option value="Prof" <?php if(isset($_POST['title']) && $_POST['title'] == "Prof"){ echo "selected"; } ?>>Prof</option>'; 
       <option value="Mr" <?php if(isset($_POST['title']) && $_POST['title'] == "Mr"){ echo "selected"; } ?>>Mr</option>'; 
       <option value="Ms" <?php if(isset($_POST['title']) && $_POST['title'] == "Ms"){ echo "selected"; } ?>>Ms</option>'; 
       <option value="Miss" <?php if(isset($_POST['title']) && $_POST['title'] == "Miss"){ echo "selected"; } ?>>Miss</option>'; 
       <option value="Mrs" <?php if(isset($_POST['title']) && $_POST['title'] == "Mrs"){ echo "selected"; } ?>>Mrs</option>'; 
     </select> 
<input type="submit" value="submit"> 
0

Je préférerais ce code dans le but

$option_array = array('select'=>'select','mr'=>'mr'... other values); 

<?php 
    $option_string = ''; 
foreach($option_array as $key=>$value) 
{ 
    if($key == $_POST['title']) 
    { 
    $selected = 'selected'; 
    } 
    else 
    { 
    $selected = ''; 
    } 
    $option_string .= "<option value='$key' $selected>$value</option>"; 
} 
?> 
<form method="post" action="newEmptyPHP.php">Title: 
<select name="title"> 
<?php echo $option_string; ?>  
</select> 
<input type="submit" value="submit"> 

Questions connexes