2013-03-28 78 views
1

我有简单的代码 文件名:newEmptyPHP.php选择框的值后提交

<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> 

我想保持其在表单提交之前选择选择特定值。 但我没有得到理想的输出。 任何帮助表示赞赏。

+0

你在做下拉动态或静态 – alwaysLearn 2013-03-28 11:17:41

回答

2

改变这种

<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

你还有'isset',这是错的 – 2013-03-28 11:19:01

+0

@PrasanthBendra忘了编辑那部分。感谢您指出.. :) – 2013-03-28 11:21:34

0

变化

<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>'; 

1.去除isset你在哪里检查它的值,isset将返回truefalse
2.Make selected="selectedif条件

+0

没有'isset'它可以显示通知之前提交。 – Narek 2013-03-28 11:20:07

+0

但这是错误的:isset($ _ POST ['title'])==“Dr”,它永远不会是真的 – 2013-03-28 11:20:41

+0

当然,'isset'返回布尔值。 – Narek 2013-03-28 11:23:56

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

更改为

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

但最好使用JS/jQuery。举例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

我瘦了静态选项values.If所以你必须检查类似如下的每一个选项。

<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

有一个在你的代码错误。 isset(Something)将返回truefalse,并且不会返回Dr您正在寻找。

重试此

<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

我宁愿这个代码为宗旨

$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">