Невозможно вставить данные из таблицы html в MySql дБ - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь создать форму заказа на продажу для программы управления запасами, которую я создаю для друга. Я создал таблицу html, которая загружает каждую строку из выпадающего элемента, используя ajax, заполняя оставшиеся ячейки из базы данных MySQL. Пользователь может добавлять строки и добавлять больше товаров в список. Существует логика c для сериализации каждого элемента строки (например, name_1, age_1, email_1, name_2, age_2, email_2 и c.)

Я использовал найденный мной учебник и переработал его для своей базы данных table (именно поэтому имена отображаются выключенными)

Теперь моя задача - взять данные из таблицы html (которую я обернул тегом формы) и вставить данные в другую таблицу в моей базе данных. Мне не удалось получить данные $ _POST для отображения на моей целевой странице (addDetails. php)

Я попытался с помощью простого оператора раскрыть значения $ _POST, но ничего не получил. Я использую ajax для извлечения полей из MySQL, а затем javascript для вставки их в таблицу html.

Это мое утверждение проверки:

<code>if ($_POST)
{
    echo "<pre>" . print_r($_POST, true) . "
";} ?>

Я новичок в использовании ajax, и ввод данных из нескольких строк html - это не то, о чем я нахожу много информации. Я открыт для предложений.

<!doctype html>
<html>
<head>
    <title>How to autocomplete data on multiple fields with jQuery and AJAX</title>

    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <link href='jquery-ui.min.css' type='text/css' rel='stylesheet' >
    <script src="jquery-3.2.1.min.js" type="text/javascript"></script>
    <script src="jquery-ui.min.js" type="text/javascript"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

    <script type="text/javascript">
        $(document).ready(function(){

            $(document).on('keydown', '.username', function() {
                
                var id = this.id;
                var splitid = id.split('_');
                var index = splitid[1];

                $( '#'+id ).autocomplete({
                    source: function( request, response ) {
                        $.ajax({
                            url: "getDetails.php",
                            type: 'post',
                            dataType: "json",
                            data: {
                                search: request.term,request:1
                            },
                            success: function( data ) {
                                response( data );
                            }
                        });
                    },
                    select: function (event, ui) {
                        $(this).val(ui.item.label); // display the selected text
                        var userid = ui.item.value; // selected id to input

                        // AJAX
                        $.ajax({
                            url: 'getDetails.php',
                            type: 'post',
                            data: {userid:userid,request:2},
                            dataType: 'json',
                            success:function(response){
                                
                                var len = response.length;

                                if(len > 0){
                                    var id = response[0]['id'];
                                    var name = response[0]['name'];
                                    var email = response[0]['email'];
                                    var age = response[0]['age'];
                                    var salary = response[0]['salary'];

                                    document.getElementById('name_'+index).value = name;
                                    document.getElementById('age_'+index).value = age;
                                    document.getElementById('email_'+index).value = email;
                                    document.getElementById('salary_'+index).value = salary;
                                    
                                }
                                
                            }
                        });

                        return false;
                    }
                });
            });
            
            // Add more
            $('#addmore').click(function(){

                // Get last id 
                var lastname_id = $('.tr_input input[type=text]:nth-child(1)').last().attr('id');
                var split_id = lastname_id.split('_');

                // New index
                var index = Number(split_id[1]) + 1;

                // Create row with input elements
                var html = "<tr class='tr_input'><td><input type='text' size='65' class='username' id='username_"+index+"' placeholder='Enter Next Crop'></td><td><input type='text' size='8' class='name' id='name_"+index+"' ></td><td><input type='text' size='8' class='email' id='email_"+index+"' ></td><td><input type='text' size='8' class='salary' id='salary_"+index+"' ></td><td><input type='text' size='8' class='age' id='age_"+index+"' ></td><td><input type='text' size='8' class='qty' id='qty_"+index+"' ></td></tr>";

                // Append data
                $('tbody').append(html);
                
            });
        });

    </script>
</head>
<body>
    
    <div class="container">
    <h3><span>Add Items to the Invoice</span></h3>  <br>  
    <form method="POST" action="addDetails.php">
        <table border='1' style='border-collapse: collapse;'>
            <thead>
            <tr>
                <th>Crop Name</th>
                <th>Crop ID</th>
                <th>Product #</th>
                <th>Price</th>
                <th>Available</th>
                <th>Quantity</th>
            </tr>
            </thead>
            <tbody>
            <tr class='tr_input'>
                <td><input type='text' size = '65' class='username' id='username_1' placeholder='Enter Crop Name'></td>
                <td><input type='text' size = '8' class='name' id='name_1' ></td>
                <td><input type='text' size = '8' class='email' id='email_1' ></td>
                <td><input type='text' size = '8' class='salary' id='salary_1' ></td>
                <td><input type='text' size = '8' class='age' id='age_1' ></td>
                <td><input type='text' size = '8' class='qty' id='qty_1'></td>
            </tr>
            </tbody>
        </table>
        
        <br>
        <input type='button' value='Add more' id='addmore'>
        <br>
        <br>
        <input type='submit' value='Submit' id='sbmt'>
        </form>
    </div>
</body>
</html>

Это моя дополнительная информация. php page

<code><?php
if ($_POST)
{
    echo "<pre>" . print_r($_POST, true) . "
";}?>

Проверка прохождения данных

Имя пользователя =

Id =

Имя =

Email =

Зарплата =

Возраст =

Кол-во =

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