1

1つのページに2つのフォームがあります。

2番目のフォームが常に無効モードになるようにしたいと思います。

最初のフォーム送信ボタンが押されて検証されると、2番目のフォームをアクティブにしてデータを入力する必要があります。

これについて私を助けることができるPHPの何かがありますか

4

5 に答える 5

2

2 つの方法があります。

1) ajax を使用して最初のフォームの検証を送信し、「true」を受け取った場合は、2 番目のフォームを有効にします。

2) 最初のフォームから POST を作成し、すべて問題がなければ、「検証済み」を「true」に設定し、同じページをリロードします。2 番目の形式では、「有効化」は $validated = true; の場合にのみ行う必要があります。

于 2013-01-24T09:48:48.827 に答える
1

以下のロジックは、出発点として役立ちます。

<form method="post">
    <input type="text" name="name" />
    <input type="submit" name="form1" value="Proceed" />
</form>

<form method="post">
    <input type="text" name="email"<?php if(!isset($_POST['form1'])) { echo ' disabled="disabled"'; } ?> />
    <input type="submit" name="form2" value="Submit"<?php if(!isset($_POST['form1'])) { echo ' disabled="disabled"'; } ?> />
</form>

もちろん、AJAX を使用して最初のフォームを検証するか、フォームを別のページに表示する方がはるかに信頼性が高くなります。

于 2013-01-24T09:49:57.783 に答える
0
<?php
    if(isset($_POST['next'])) {
        if($_POST['name']!="") {
            $disabled = "";
            $val = $_POST['name'];
        } else {
            $disabled = " disabled='disabled'";
            $val="";
        }
    } else {
        $disabled = " disabled='disabled'";
        $val="";
    }

?>

<html>
    <head>
    <title></title>
    </head>
    <body>
        <form id="frm1" name="frm1" method="POST" action="">
            <label>Name</label><input type="text" id="name" name="name" value="<?php echo $val;?>"/>
            <input type="submit" name="next" id="next_frm" value="Next"/>
        </form>
        <form name="frm2" id="frm2" method="POST" action="">
            <label>Address</label><input type="text" name="address" id="address" value="" <?php echo $disabled;?>/>
            <input type="submit" name="save" id="save" value="Save" <?php echo $disabled;?>/>
        </form>
    </body>
</html>

これはあなたが探していたものです、私は願っています

于 2013-01-24T09:58:53.567 に答える
0

if else 条件を使用するだけです。

// this if condition checks whether the form 1 is submitted or not. If form1 is submitted than form 2 is displayed else form1 wil only be displayed     
if(isset($_POST['submit']))
{
    //Display your form 2.
}

else
{
     //Display your form1.
 }
于 2013-01-24T09:49:06.310 に答える
0

2番目のフォーム内のすべての入力にクラスを設定しdisabled、もちろんjavascriptを少し知っている人が変更できるように設定することでそれを行うことができます。

したがって、ビジュアルレイヤーとして実行できますが、誰かが何かを忍び込ませたい場合に備えて、2番目のフォームを渡すことができるかどうかを PHP で確認してください。

より複雑なアプローチは、フォーム フィールドのように見える画像を表示し、最初のフォームが送信される入力にのみ変更することです。これは、クライアント側またはサーバー側で実行できます

したがって、実際には 3 つのフォームがありますが、そのうちの 1 つは「偽物」です。

于 2013-01-24T09:50:27.493 に答える