как отправить форму, размещенную в datatable? - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь представить данные, которые я показал в виде данных.Вся таблица, которая включает в себя данные, помещенные в <thead> также.Позвольте мне спросить более простым способом с примером.

<form method="post">
    <table class="table table-bordered" id="example">
        <thead>
            <tr>
                <td>
                  <input type="text" name="val1" />
                </td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><input type="text" name="checkBody" /></td>
            </tr>
        </tbody>
    </table>
    <input type="submit" class="btn btn-primary" value="save" name="upload" />
</form>

<script type="text/javascript">
    $(document).ready(function () {
        $("#example").DataTable({
            "info": false,
            "ordering": false,
            "searching": false,
            "retrieve": true,
            "scrollY": "100%",
            "scrollX": true,
            "scrollCollapse": true,
            "paging": false
        });
    });
</script>

это форма и дата работает правильно, но основная проблема заключается в нажатии кнопки подтверждения, когда я вижу значение $_POST['val1'], оно пустое, но вводполе в tbody ($_POST['checkBody']) могут отображаться значения, почему так?Примечание: проблема возникает только тогда, когда я использую datatable, но когда я пробую его без datatable, такой проблемы не возникает, и извините за мой плохой английский!и настоящая проблема сложна, но это небольшая демонстрация проблемы, с которой я сталкиваюсь.

1 Ответ

0 голосов
/ 29 января 2019

Проблема в том, что datatable обычно создает столбец (входной тег и т. Д.) Заголовка два раза.

Один в заголовке, второй в теле (скрытый) с тем же именем.Поэтому, когда мы помещаем какое-то значение в «input» (textfeild), которое мы видим, обычно это первое, которое заменяется вторым значением «input» (textfeild) (потому что оба имеют одинаковый атрибут «name»).Вы можете преодолеть эту проблему, просто используя '[]' перед этим именем, например

 <input type='text' name='val1[]' />

, это преобразует val1 в массив, так что вы просто можете игнорировать второй, используя forloop и retrive $_POST['val1']первое значениеНо сохраняйте порядок ложных данных.

Примечание: возможно, есть более простой способ решить эту проблему.если вы знаете что-нибудь, опубликуйте это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...