Не удается получить значения массива формы - PullRequest
1 голос
/ 13 февраля 2020

У меня есть форма, которая является Dynami c, где пользователь может добавить дополнительные строки в форму. В конечном счете, я хотел бы получить эти данные и отправить их в свою базу данных с условными обозначениями для вставки, обновления или удаления, но сейчас я просто хочу получить значения массива. Всякий раз, когда я нажимаю «Отправить», он просто переходит на пустую белую страницу.

Вот форма:

<form id="" class="form" name="parts" method="post" action="http://website.com/home/wp-content/themes/Avada-child/update-list.php">
    <table class="table table-bordered">
        <thead>
            <tr>
                <th>First Name</th>
                <th>Last Name</th>
                <th>County</th>
                <th>Street</th>
                <th>City</th>
                <th>Ward</th>
                <th>Precinct</th>
                <th>Actions</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td style="display:none;">
                    <input type="hidden" class="form-control" name="username[]" id="username" value="user">
                </td>
                <td>
                    <input onkeyup="valid(this)" onblur="valid(this)" type="text" class="form-control" name="first_name[]" id="first_name">
                </td>
                <td>
                    <input onkeyup="valid(this)" onblur="valid(this)" type="text" class="form-control" name="last_name[]" id="last_name">
                </td>
                <td>
                    <input onkeyup="valid(this)" onblur="valid(this)" type="text" class="form-control" name="county[]" id="county">
                </td>
                <td>
                    <input onkeyup="valid(this)" onblur="valid(this)" type="text" class="form-control" name="street[]" id="street">
                </td>
                <td>
                    <input onkeyup="valid(this)" onblur="valid(this)" type="text" class="form-control" name="city[]" id="city">
                </td>
                <td>
                    <input onkeyup="valid(this)" onblur="valid(this)" type="text" class="form-control" name="ward[]" id="ward">
                </td>
                <td>
                    <input onkeyup="valid(this)" onblur="valid(this)" type="text" class="form-control" name="precinct[]" id="precinct">
                </td>
                <td style="display:none;">
                    <input type="hidden" class="form-control" name="id[]" id="id">
                </td>
                <td style="display:none;">
                    <input type="hidden" class="form-control active" name="is_active[]" id="is_active" value="yes">
                </td>
                <td> 
                    <a class="delete" title="" data-toggle="tooltip" data-original-title="Delete"><i class="material-icons"></i></a>
                </td>
            </tr>
        </tbody>
    </table>
    <div class="col-lg-12" style="text-align:right; padding-right:0;">
        <button type="button" class="btn btn-info add-new"><i class="fa fa-plus"></i> Add New</button>
    </div>
    <div style="float:left; width:100%; text-align:right; padding-bottom:24px; padding-top:24px;">
        <input type="submit" id="savey" name="submit" value="submit" border="0">
    </div>
</form>

А вот мой файл действия формы:

<?php
    require_once '../../../wp-load.php';

    global $wpdb;
    $newdb = new wpdb( 'user' , 'pass' , 'table' , 'localhost' );

    if(isset($_POST['submit'])) {

        $username = $_POST['username'];
        $first_name = $_POST['first_name'];
        $last_name = $_POST['last_name'];
        $county = $_POST['county'];
        $street = $_POST['street'];
        $city = $_POST['city'];
        $ward = $_POST['ward'];
        $precinct = $_POST['precinct'];
        $id = $_POST['id'];
        $is_active = $_POST['is_active'];


        if(is_array($_POST['submit'])) {
            foreach($username as $key ) {
                echo $key . "<br>";
            }   
        }

    }

?>

Если у меня нет имен в качестве имени [], я могу получить строку формы для вывода, так что я знаю, что форма публикует данные. Но как только я превращаю имена в массивы, name [], я не могу получить данные. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Вам нужно получить все поля по индексу:

<?php
    require_once '../../../wp-load.php';

    global $wpdb;
    $newdb = new wpdb( 'user' , 'pass' , 'table' , 'localhost' );

    if(isset($_POST['submit'])) {

        $username = $_POST['username'];
        $first_name = $_POST['first_name'];
        $last_name = $_POST['last_name'];
        $county = $_POST['county'];
        $street = $_POST['street'];
        $city = $_POST['city'];
        $ward = $_POST['ward'];
        $precinct = $_POST['precinct'];
        $id = $_POST['id'];
        $is_active = $_POST['is_active'];


        if(is_array($_POST['username'])) {
            foreach($username as $index => $value) {
                // You can get all other items by array[$index];
                // Example: $street[$index]

                // If you include array items inside a string
                // enclose it between curly braces
                echo "Username: $value, First name: {$first_name[$index]}<br>";
            }   
        }

    }

?>
0 голосов
/ 13 февраля 2020

Должно быть:

$first_name = $_POST['first_name'][];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...