0

私のフォームには2つのフィールドがあります。

1) HTML 選択フィールド項目 (mysql データベースから)
2) 名前ボックス。

ユーザーが html select タグからアイテムを選択し、自分の名前を書き忘れた場合、php では..

* Your username required

しかし、その後、ユーザーが選択した選択項目が表示されません..再び選択が表示されます...そのため、別のエラーメッセージが表示されます..

* Please select your item.

この選択したアイテムをphpで表示するにはどうすればよいですか?

HTML 形式:

<tr>    
<td>Class</td>
<td>
<select class="td" name="class">
    <option selected="selected" value="">Select..</option>
    <?php
    include_once("../../toplevel/content/manage/dbcon/dbcon.php");
    $sql = mysql_query("SELECT * FROM class");
    while($re = mysql_fetch_array($sql))
    {
$re_class = mysql_real_escape_string(trim($re['c_name']));      
        echo "<option value='$re_class'> $re_class </option>";
    }
    ?>  
</select>
</td>
</tr>

<tr>
<td>Name</td>
<td><input type="text" value="<?php if(isset($_POST['uname'])) echo 
$_POST['uname']; ?>" name="uname" class="td" /></td>
</tr>
<tr>

名前フィールドに対してこれを行うことができますが、選択フィールドに対してこれを行うにはどうすればよいですか?
どうもありがとう。
シビル

4

3 に答える 3

0
<tr>    
<td>Class</td>
<td>
<select class="td" name="class">
    <option value="">Select..</option>
    <?php
    include_once("../../toplevel/content/manage/dbcon/dbcon.php");
    $sql = mysql_query("SELECT * FROM class");
    while($re = mysql_fetch_array($sql))
    {
        $re_class = mysql_real_escape_string(trim($re['c_name']));
        if(isset($_POST['class'])){
            echo '<option '.($_POST['class']==$re_class?'selected':'').' value='.$re_class.'>'.$re_class.'</option>';
        }else{
            echo '<option value='.$re_class.'>'.$re_class.'</option>';
        }
    }
    ?>  
</select>
</td>
</tr>

<tr>
<td>Name</td>
<td><input type="text" value="<?php if(isset($_POST['uname'])) echo 
$_POST['uname']; ?>" name="uname" class="td" /></td>
</tr>
<tr>
于 2012-04-08T05:55:57.323 に答える
0
    <tr>    
    <td>Class</td>
    <td>
    <select class="td" name="class">
        <option value="">Select..</option>
        <?php
        include_once("../../toplevel/content/manage/dbcon/dbcon.php");
        $sql = mysql_query("SELECT * FROM class");
        while($re = mysql_fetch_array($sql))
        {
           $re_class = mysql_real_escape_string(trim($re['c_name'])); 
           $sel='';
           if($re_class==$_POST['class'])  {
             $sel='selected="selected"';
           }   
            echo "<option value='$re_class' ".$sel."> $re_class </option>";
        }
        ?>  
    </select>
    </td>
    </tr>

    <tr>
    <td>Name</td>
    <td><input type="text" value="<?php if(isset($_POST['uname'])) echo 
    $_POST['uname']; ?>" name="uname" class="td" /></td>
    </tr>
    <tr>

これのことですか?

于 2012-04-08T05:59:01.653 に答える
0
  <tr>    
  <td>Class</td>
<td>
<select class="td" name="class" onchange="this.form.submit();">
<option selected="selected" value="">Select..</option>
<?php
include_once("../../toplevel/content/manage/dbcon/dbcon.php");
$sql = mysql_query("SELECT * FROM class");
while($re = mysql_fetch_array($sql))
{
$re_class[] = mysql_real_escape_string(trim($re['c_name']));      

}
?>  
<?php for($i = 0; $i < count($re_class); $i++) { ?>

<?php echo "<option value='$re_class[$i]'";
if($re_class[$i] == $_POST['class']) { echo "selected=selected"; } ?> <?php echo ">" . $re_class[$i] . </option>"; ?>

<?php } ?>
   </select>
   </td>
   </tr>

 <tr>
 <td>Name</td>
 <td><input type="text" value="<?php if(isset($_POST['uname'])) echo 
     $_POST['uname']; ?>" name="uname" class="td" /></td>
 </tr>
 <tr>

編集現在の変数が配列$_POST内のオプションと等しい場合、オプション値を選択したいようです。$re_class

于 2012-04-08T05:43:45.693 に答える