0

phpでフォームを作りました。ドキュメントで 3 つの異なるフォームを使用しています。したがって、これらの形式を区別する必要があります。したがって、私は送信「名前タグ」を使用しています。

if ('POST' == $_SERVER['REQUEST_METHOD']) {
    if (isset($_POST['submit_1'])) {
        ....
    }
    if (isset($_POST['submit_2'])) {
        ....
    }
    if (isset($_POST['submit_3'])) {
        ....
    }
}

これは、これらのさまざまな送信ボタンを確認する方法です。

しかし、送信機能の代わりに JS でクリック機能を使用する必要があることに気付きました (ページのリロードでフォームを送信してはならないため)。

$('.erzaehlcafe_submit').click(function(){
    if ($('#year_from').val() == 'none' || $('#month_from').val() == 'none' 
            || $('#day_from').val() == 'none' || $('#topic').val() == '' || $('#contributer').val() == '' 
            || $('#begin').val() == '' || $('#place').val() == '' || $('#entrance').val() == '') {
        $("#dialog_empty").dialog( "open" );
        return false;
    }
    var form = $('#erzaehlcafe_add');  
    var data = form.serialize(); 

    $.ajax({
        url: "index.php?section=events",
        type: "POST",
        data: data,
        success: function (reqCode) {
        alert(reqCode);
            if (reqCode == 1) {
                //Date inserted into DB
                $("#dialog_add_event").dialog( "open" );
            } else {
                $("#dialog_add_event_error").dialog( "open" );
            }
        }
    });
    return false; //dont submit form
});

では、これらのフォームをどのように区別すればよいのでしょうか。(それらはすべて同じ入力に対して同じ名前を使用しています)。

この問題を解決する唯一の方法は、入力されたすべての入力に対して別の名前インデックスを定義することです。他に方法はありますか?

編集:これが私のテンプレートです(より正確にするために、erzaehlcafe_submitの代わりにsubmit_1、submit_2、submit_3などを使用したことを思い出してください)

<div id="event_accordion">
<h3><a href="#">Erzählcafé hinzufügen</a></h3>
<div>
    <form id="erzaehlcafe_add" action="index.php?section=events" method="post" accept-charset="utf-8">
        <table>
            <tr>
                <td>Datum:</td>
                <td>
                    <select name="day_from" id="day_from">
                        <option value="none" class="bold italic">Tag</option>
                            <?php
                                for($i=1; $i<=31; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="month_from" id="month_from">
                        <option value="none" class="bold italic">Monat</option>
                            <?php
                                for($i=1; $i<=12; $i++){
                                    echo "<option value=\"".$i."\">".$month_name[$i]."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="year_from" id="year_from">
                        <option value="none" class="bold italic">Jahr</option>
                            <?php
                                for($i=2008; $i<=$year; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Thema:</td>
                <td><input type="text" name="topic" id="topic" /></td>
            </tr>
            <tr>
                <td>Referent:</td>
                <td><input type="text" name="contributer" id="contributer" /></td>
            </tr>
            <tr>
                <td>Beginn:</td>
                <td><input type="text" name="begin" id="begin" /> Uhr</td>
            </tr>
            <tr>
                <td>Ort:</td>
                <td><input type="text" name="place" id="place" /></td>
            </tr>
            <tr>
                <td>Eintritt:</td>
                <td><input type="text" name="entrance" id="entrance" /> €&lt;/td>
            </tr>
        </table>
        <br />
        <div id="add_erzaehlcafe">
            <input type="submit" id="small" class="erzaehlcafe_submit" name="erzaehlcafe_submit" value="speichern">
        </div>
    </form>
</div>
<h3><a href="#">Vortrag hinzufügen</a></h3>
<div>
    <form name="vortrag_add" action="index.php?section=events" method="post" accept-charset="utf-8">
        <table>
            <tr>
                <td>Datum:</td>
                <td>
                    <select name="day_from">
                        <option value="0" class="bold italic">Tag</option>
                            <?php
                                for($i=1; $i<=31; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="month_from">
                        <option value="0" class="bold italic">Monat</option>
                            <?php
                                for($i=1; $i<=12; $i++){
                                    echo "<option value=\"".$i."\">".$month_name[$i]."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="year_from">
                        <option value="0" class="bold italic">Jahr</option>
                            <?php
                                for($i=2008; $i<=$year; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Thema:</td>
                <td><input type="text" name="name_topic" id="name_topic" /></td>
            </tr>
            <tr>
                <td>Referent:</td>
                <td><input type="text" name="name_contributer" id="name_contributer" /></td>
            </tr>
            <tr>
                <td>Beginn:</td>
                <td><input type="text" name="name_begin" id="name_begin" /> Uhr</td>
            </tr>
            <tr>
                <td>Ort:</td>
                <td><input type="text" name="name_place" id="name_place" /></td>
            </tr>
            <tr>
                <td>Eintritt:</td>
                <td><input type="text" name="name_entrance" id="name_entrance" /> €&lt;/td>
            </tr>
        </table>
        <br />
        <div id="add_vortrag">
            <input type="submit" id="small" class="vortrag_submit" name="vortrag_submit" value="speichern">
        </div>
    </form>
</div>
<h3><a href="#">Ausstellung hinzufügen</a></h3>
<div>
    <form name="ausstellung_add" action="index.php?section=events" method="post" accept-charset="utf-8">
        <table>
            <tr>
                <td>Von:</td>
                <td>
                    <select name="day_from">
                        <option value="0" class="bold italic">Tag</option>
                            <?php
                                for($i=1; $i<=31; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="month_from">
                        <option value="0" class="bold italic">Monat</option>
                            <?php
                                for($i=1; $i<=12; $i++){
                                    echo "<option value=\"".$i."\">".$month_name[$i]."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="year_from">
                        <option value="0" class="bold italic">Jahr</option>
                            <?php
                                for($i=2008; $i<=$year; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Bis:</td>
                <td>
                    <select name="day_till">
                        <option value="0" class="bold italic">Tag</option>
                            <?php
                                for($i=1; $i<=31; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="month_till">
                        <option value="0" class="bold italic">Monat</option>
                            <?php
                                for($i=1; $i<=12; $i++){
                                    echo "<option value=\"".$i."\">".$month_name[$i]."</option>\n";
                                }
                            ?>
                    </select>
                    <select name="year_till">
                        <option value="0" class="bold italic">Jahr</option>
                            <?php
                                for($i=2008; $i<=$year; $i++){
                                    echo "<option value=\"".$i."\">".$i."</option>\n";
                                }
                            ?>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Thema:</td>
                <td><input type="text" name="name_topic" id="name_topic" /></td>
            </tr>
            <tr>
                <td>Aussteller:</td>
                <td><input type="text" name="name_contributer" id="name_contributer" /></td>
            </tr>
            <tr>
                <td>Eintritt:</td>
                <td><input type="text" name="name_entrance" id="name_entrance" /></td>
            </tr>
        </table>
        <br />
        <div id="add_ausstellung">
            <input type="submit" id="small" class="ausstellung_submit" name="ausstellung_submit" value="speichern">
        </div>
    </form>
</div>
<h3><a href="#">Termine bearbeiten/löschen</a></h3>
<div>
    <button id="edit_event">Termin bearbeiten</button>
</div>

4

2 に答える 2

1

<input type="hidden">でそれぞれに を追加formname="submit_X"ます。要素はinput type="submit"によって無視されているようserialize();です。

例:

<input type="text"​​​​​​​​​​​​ id="year_from" name="year_from" />
<!-- More inputs.... -->
<input type="hidden" name="submit_1" value="true" />​​​​​​​​​​​​​​​​​

JavaScript を使用して、別のキーを POST データに追加することもできます。

このフィドルを見てください:http://jsfiddle.net/cd7Yy/

于 2012-05-23T17:22:57.107 に答える
0

HTMLも表示する必要があります。

しかし、フォームのボタンで OnClick イベントを使用すると、フォームごとに異なる名前で HTML にボタンを作成し、PHPで $_POST で受け取った名前を確認できます。

于 2012-05-23T17:22:14.980 に答える