2013-03-28 71 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">