Принять JSON на стороне JS

250
05 ноября 2017, 19:45

Добрый день. Возникла такая проблема. Нужно из списка выбрать имя таблицы из БД, отправить его в php файл, выполнить запрос на выборку всех столбцов из таблицы, отправить имена этих столбцов обратно и сгенерировать поля по количеству этих самых столбцов(делаю добавление записей в админке). Вот AJAX

<script>
    var parent = document.getElementsByTagName("BODY")[0];
    var element = document.createElement("input");
var z = document.getElementsByName("tables");
    $('select[name="tables"]').change(function(){
            // send ajax
            $.ajax({
                type : "POST",
                dataType : "json", // Тип данных, который ожидаем получить
                url: "admin_add_script.php", // url where to submit the request
                success : function(result) {
element.id = "hi";
parent.appendChild(element);
$('#inputs').html(result[0].column_name);
                },
                error: function(xhr, resp, text) {
                    console.log(xhr, resp, text);
                }
            })
        }
    );
</script>

Отправляю выбранное значение. Файл PHP

<?php
include "../php/connect_bd.php";
    $data = array();
    $post = $_POST['tables'];
    $sql = "
select COLUMN_NAME 
from information_schema.columns
where  TABLE_NAME = '" . $post . "'
";
    $result = pg_query($connect, $sql);
    while ($row = pg_fetch_assoc($result)) {
        $data[] = $row;
    }
    $json = json_encode($data);
    echo $json;

Запрос выполняется нормально. Получаю вот такой массив:

[{"column_name":"id"},{"column_name":"primary_name"},{"column_name":"secondary_name"},{"column_name":"link"}]

Но вот дальше на стороне JS не выходит нормально принять. Делал аналогичным способом поиск и всё работало. Тут же ошибка:

   Uncaught TypeError: Cannot read property 'column_name' of undefined
    at Object.success (admin_add.html:66)
    at i (jquery-3.0.0.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-3.0.0.min.js:2)
    at A (jquery-3.0.0.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery-3.0.0.min.js:4)

Помогите найти ошибку

Answer 1
 var form = $('#form').serialize();

Добавление данной строчки решило проблему

READ ALSO
Как разбить строку из латиницы и кириллицы посимвольно в массив?

Как разбить строку из латиницы и кириллицы посимвольно в массив?

Как разбить строку в массив или просто поэлементно взять каждый символ этой строки? Проблемы возникает в том, что строка состоит из букв кириллицыНужно...

290
Header Location

Header Location

Всем приветНаткнулся на интересный момент

229
API загрузка файлов на файлообменник

API загрузка файлов на файлообменник

Пишу API для нескольких файлообменниковУ некоторых имеется загрузка по FTP и через сайт

428