Получение данных полей формы HTML Dynami c и сохранение в MySQL базе данных - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь сохранить данные из формы html в базу данных MySQL. Я новичок в веб-разработке и javascript. У меня есть форма, в которой пользователь может добавлять поля строк в зависимости от того, сколько строк им нужно. Форма может успешно добавлять и удалять строки, но проблема заключается в получении всех полей строк. Я могу получить доступ только к деталям последней строки, когда использую $ _POST в моем файле form_process php. Как я могу получить все поля строк, которые создаст пользователь, чтобы сохранить их в базе данных?

Я пробовал эти сообщения, но они не имеют отношения к динамическим c полям формы: Canonical: как сохранить данные формы HTML в MySQL базу данных и Dynami c создание поля формы и сохранение в базе данных php mysql

На изображении ниже показана форма с тремя полями вне поля. Как мне получить все значения строк, чтобы сохранить их в таблице в базе данных MySQL? Заранее большое спасибо за ваше время

Dynamic form field with entries

Мой HTML код формы ниже:

        <fieldset class="row2">
        <legend>Bus Data</legend>
        <p> 
            <input type="button" value="Add Bus" onClick="addRow('busDataTable')" /> 
            <input type="button" value="Remove Bus" onClick="deleteRow('busDataTable')"  /> 
            <p>(Remove action applies only to a column with a marked check box.)</p>
        <p>

        <table id="busDataTable" class="form" border="1">
            <tbody>
                <tr>
                    <p>
                        <td><input type="checkbox"  name="chk[]" checked="checked" /></td>
                        <td>
                            <label>Bus #</label>
                            <input type="text" required="required" name="Bus_Number">
                        </td>
                        <td>
                            <label for="Load_kW">Load kW</label>
                            <input type="text" required="required"   name="Load_kW">
                        </td>
                        <td>
                            <label for="Load_kVAR">Load kVAR</label>
                            <input type="text" required="required"   name="Load_kVAR">
                        </td>
                        <td>
                            <label for="Voltage_kV">Voltage kV</label>
                            <input type="text" required="required"   name="Voltage_kV">               
                        </td>
                    </p>
                </tr>
            </tbody>
        </table>

My PHP код, который предположительно обрабатывает форму: (Здесь основная проблема, я могу получить для одной строки, но как мне получить для всех строк?

        <?php
    // put your code here
    // Connecting to mySQL database
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "Radial Distribution System";

    // Create connection to database and get power system data
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // for showing the exact error on the html page
    $conn = new mysqli($servername, $username, $password, $dbname);        


    $_busNumber = array();
    $_busNumber []= $_POST['Bus_Number'];
    print_r($_busNumber);



    $conn->close();
    ?>

Код javascript который создает / добавляет дополнительные строки:

function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if(rowCount < 66){                          // limit the user from creating fields more than your limits
    var row = table.insertRow(rowCount);
    var colCount = table.rows[0].cells.length;
    for(var i=0; i<colCount; i++) {
        var newcell = row.insertCell(i);
        newcell.innerHTML = table.rows[0].cells[i].innerHTML;
    }
}else{
     alert("Maximum nodes for this platform is 66.");

}
}

1 Ответ

1 голос
/ 26 мая 2020

Вы можете определить поля формы HTML, которые будут заполнены как массивы в PHP, добавив [] в конец.

<input type="text" required="required" name="Bus_Number[]">

Приведенное выше приведет к тому, что $_POST['Bus_Number'] будет массивом в PHP, и вы сможете обработать его оттуда.

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