0

我在php中制作了一个表格。我在文档中使用了 3 种不同的表格。所以我必须区分这些形式。因此我正在使用提交“名称标签”。

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

这就是我检查这些不同提交按钮的方式。

但是我注意到我需要在 JS 中使用 click 函数而不是 submit 函数(因为表单不应该通过页面重新加载提交)

$('.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
});

那么如何区分这些形式呢?(他们都对相同的输入使用相同的名称)。

解决该问题的唯一方法是为所有类型的输入定义其他名称索引。还有其他方法吗?

编辑:这是我的模板(记得我使用了 submit_1、submit_2 和 submit_3 而不是 erzaehlcafe_submit 等等以使其更精确)

<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">_ form_ name="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 回答