1

これには解決策が必要です。ここで、フォーム要素を検証したいと思います。私はPHPでそれを行いましたが、送信ボタンをクリックすると問題が発生し、検証プロセスが実行されますが、選択ボックスの値が選択された部門に変更されます。例として、メッセージidだけで学生に与えずに送信ボタンをクリックした場合、最初にページがリロードされると、入力して選択ボックスの値が再び変更されます..select dept..studentidselect dept

php:

if($_POST['submit']!='')
{
    $c=0;
    if($_POST['studid']=='' ) {
        $msg_id="Enter stud id";
        $c++;
    }
    if($_POST[studdept]=='') {
        $msg_dept="Enter stud dept";
        $c++;
    }
    if($c==0) {
        echo "form has been submitted..";
    }
}

HTML:

<form id="myform" action="" method="post">
    <table>
        <tr>
        <td> Studid: *</td> <td> <input type="text" name="studid" maxlength="10" value="<?=$_POST[studid]?>"> </td> <td> <?php echo $msg_id; ?> </td> </tr>
        <tr>
            <td> StudDept: *</td>
            <td>
                <select name="studdept">
                    <option value="" selected="selected" >select dept</option>
                    <option value="cse" >cse</option>
                    <option value="eee" >eee</option>
                    <option value="mech" >mech</option>
                    <option value="ece" >ece</option>
                </select>
            </td>
            <td><?php echo $msg_dept; ?> </td>
        </tr>
        <tr>
            <td><input type="submit" name="submit" value="submit"> </td>
        </tr>
    </table>
</form>

誰かがここで私を助けることができますか?

前もって感謝します...

4

4 に答える 4

2

ループを介してリストを生成する<option></option>必要があります (データベース テーブルから部門リストを生成している場合)。ここで、最初の<option>ペアに設定した条件を設定する必要があります。

または、Turnary Operator を配置することもできます (静的リストを使用している場合)。

<select name="studdept">
    <option value="none" <?php echo ($_REQUEST['studdept']=='none'?'selected="selected"'):'';?> >select dept</option>
    <option value="cse" <?php echo ($_REQUEST['studdept']=='cse'?'selected="selected"'):'';?> >cse</option>
    <option value="eee" <?php echo ($_REQUEST['studdept']=='eee'?'selected="selected"'):'';?> >eee</option>    
    <option value="mech" <?php echo ($_REQUEST['studdept']=='mech'?'selected="selected"'):'';?> >mech</option>
    <option value="ece" <?php echo ($_REQUEST['studdept']=='ece'?'selected="selected"');:''?> >ece</option>
</select>

$_REQUEST代わりに$_GETまたはを使用します$_POST

于 2013-10-02T11:36:49.557 に答える
0

データの送信にメソッドを使用し、 を使用POSTして値を取得しようとしているためです$_GET['studdept']

したがって、次の 2 つの方法があります。

(1) メソッドを に変更するGETか、
(2) に変更$_GET['studdept']$_POST['studdept']ます。

于 2013-10-02T11:45:51.187 に答える
0

フォーム データが POST メソッドを使用して送信されることを指定します。

PHP がこれを行う方法は、すべての「投稿された」値を「$_POST」と呼ばれる連想配列に格納することです。「$_POST」連想配列のキーを表すため、フォーム データ名の名前に注意してください。

$_POST['studdept']次の代わりに:を使用:$_GET['studdept']

于 2013-10-02T11:42:25.980 に答える
0

フォームのメソッドはPOSTで、 GET を使用して部門を取得しようとしています<? echo ($_GET['studdept'] == 'cse' ? 'selected="selected"' : '') ?>

とにかく、HTML を改善して、('cse' だけでなく) 部門が選択されているかどうかを確認する必要があります。for/while ループがその仕事をします。

さらに、あなたが" "したように、投稿変数に追加しますif($_POST['studid']=='' )(しかし、あなたはしませんでしたif($_POST[studdept]=='')

于 2013-10-02T11:40:12.333 に答える