0

私はJavascriptに少し慣れていません。複数の入力タイプを持つ html フォームがありますが、同じ名前が複数のタイプで発生しています。フォームのデータをデータベースに挿入する前に、フォームを検証する必要があります。JS 検証なしでデータベースを更新して挿入することはできますが、同じ名前の入力を処理するのが複雑なため、javascript を使用して検証部分を実行することはできません。フォームは次のとおりです。

    <form name="confirmation" method="post" action="appointment.php" onsubmit="return check()">

        <label>Restaurant Name: </label>
        <input name="r_name[]" type="text" value="<?php echo $row[0]?>"><br>
        <label>Appointment Date: </label>
        <input name="app_date[]" type="date" value="<?php echo $row[1]?>"><br>
        Confirm:<select name="confirm[]"> 
            <option value=""></option>
            <option value="yes">Yes</option>
            <option value="no">No</option>
        </select><br><br>

    </form>

データベースを更新する php コードは次のとおりです。

<?php 
if(isset($_POST['submit'])){
    $names= $_POST['r_name'];
    $dates=$_POST['app_date'];
    $confirm=$_POST['confirm'];
    //echo $count;
    for($i=0;$i<$count;$i++){
    //echo "success";
        $value=$confirm[$i];
        if($value=="yes")
            $value="y";
        else 
            $value="n";
      //  echo $value;
        $result= mysql_query("update appointment set confirm='".$value."' where rname='".$names[$i]."';");
    }                       
}?>

フォーム内の同じ名前のデータをデータベースに挿入/更新するには、[] をそれぞれの名前に関連付ける必要がありました。これは簡単な方法でした。しかし、検証部分のjavascriptで評価するのに問題があります。上記のフォームで使用されている入力タイプに使用されている名前のいずれかを含む小さなコード スニペットを使用して、それを実行する方法を誰かに提案してもらえますか。ありがとう。

4

3 に答える 3

0

この jquery ライブラリを使用できますhttp://www.position-relative.net/creation/formValidator/demos/demoValidators.html

送信投稿を実行し、ライブラリがすべての検証を行った後に、この検証を使用できます。

于 2013-04-10T22:31:28.003 に答える
0

names が複数の入力要素で同じである場合、特定の要素をターゲットにする場合はその要素で一意の s を使用できidますclass。また、es を使用して同様の要素のグループをターゲットにすることもできます。

<form>
    <input name="myInput[]" id="myInput_0" class="myInput" type="text" value="">
    <input name="myInput[]" id="myInput_1" class="myInput" type="text" value="">
    <input name="myInput[]" id="myInput_2" class="myInput" type="text" value="">
</form>

myInput[0]asgetElementById('myInput_0')または allmyInput[]を asとしてターゲティングできるようになりましたgetElementByClassName('myInput')

于 2013-04-10T22:03:41.130 に答える