0

コード form.html と entry.php があります

最初に、JavaScriptを使用して選択ボックスでテキストフィールドを無効にし、送信して出力します。このコードを使用しない場合、<form name="form1" method="post" action="entry.php">form.html は Web ブラウザーに表示されますが、1 つの送信ボタンで送信するにはどうすればよいですか?

form.html

<html>
<head> 
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
    $('.group').hide(); 
    $('#option1').show();
    $('#chooseForm').change(function() {
        $('.group').hide();
        $('#'+$(this).val()).show();
    })  

});
</script>
</head>
<body>
<form name="form1" method="post" action="entry.php">

    <select id="chooseForm" name="select">
        <option value="option1">Form1</option>
        <option value="option2">Form2</option>
        <option value="option3">Form3</option>
    </select>

    <form id="option1" class="group">
        <input name="a" value="form A"><br>
    </form>

    <form id="option2" class="group">
        <input name="a" value="form A"><br>
        <input name="b" value="form B"><br>
    </form>

    <form id="option3" class="group">
        <input name="a" value="form A"><br>
        <input name="b" value="form B"><br>
        <input name="c" value="form C"><br>
    </form>
<input value="Save" name="submit" type="submit"><br>
</form>
</body>
</html>

entry.php

<?php
$select = $_POST['select'];
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];

echo $select;
echo "<br>";
echo $a;
echo "<br>";
echo $b;
echo "<br>";
echo $c;
?>

ネストされたフォームなしでこのコードを解決できる人はいますか? ありがとう :)

4

1 に答える 1

0

まず、フォームをネストすることはできません
私が理解しているように、アイデアはいくつかの要素をグループ化することです。<form>その場合は、内部タグを<div>sに置き換えます。

もう 1 つの問題は、異なるセクションで同じ入力要素名を使用したいということです。基本的に、name一意でない場合は、最後に出現した値で更新されます。例えば:

<input type="text" name="a" value="val 1" />
<input type="text" name="a" value="val 2" />

上記が投稿されると、値$_POST['a']が含まれval 2ます。2 番目のテキスト ボックスが非表示の場合でも。したがって、テキスト ボックスの名前を一意にするか、非表示のテキスト ボックスを無効にします。disabled属性は、コントロールをユーザー入力に対して無効にし、$_POST配列にも存在しません。したがって、この場合は次のようになります。

<input type="text" name="a" value="val 1" />
<input type="text" name="a" value="val 2" disabled />

$_POST['a']val 12 番目のテキスト ボックスが無効になっているため、値が含まれます。
あなたの場合、セクションを非表示にするたびに、グループ内のすべてのコントロールを無効にする必要があります。方法は次のとおりです: div 内のすべてのフォーム要素を無効にします。

于 2013-10-17T07:47:12.900 に答える