Вызов стола с AJAX - PullRequest
       2

Вызов стола с AJAX

0 голосов
/ 13 сентября 2018

Так что я пытаюсь отобразить таблицу, когда пользователь нажимает на изображение.Я пришел довольно далеко, но я застрял и не могу найти свою ошибку.

Когда я открываю консоль, я получаю следующую ошибку:

enter image description here

Теперь Ганнибал входит в группу пользователей, которых я хочудля отображения в таблице.

Я не буду публиковать весь код, так как его много.Я постараюсь сохранить это в соответствующих частях.В этом случае я знаю, что попал в мой файл .php, который выполняет запрос.

Поскольку я протестировал запрос, я знаю, что он работает, поэтому я просто покажу, как вернуть его в свой отдельный файл .php:

$Guest_Invite_Data = filterTable($List_Guests_Query);
$Guest_Invite_Data_fetched = mysqli_fetch_array($Guest_Invite_Data);

echo json_encode($Guest_Invite_Data_fetched);

function filterTable($query)  
{   
    $filter_Result = mysqli_query($GLOBALS['connect'], $query);
    return $filter_Result;
}    

И вот часть моего jQuery:

success:function(Guest_Invite_Data_fetched) {
    createTableByJqueryEach2(Guest_Invite_Data_fetched);
},

И вот моя функция:

function createTableByJqueryEach2(data2){

    var eTable2="<table><tr><th colspan='5'>Gäste einladen</th></tr><tr><th>Person</th></tr>"
    $.each(data2,function(index2, row2){

        eTable2 += "<tr>";
        $.each(row2,function(key2,value2){
            eTable2 += "<td>"+value2+"</td>";
        });
     eTable2 += "</tr>";
    });
    eTable2 +="</table>";
    $('#guest_table').html(eTable2);
 }

Кто-нибудь замечает мою ошибку?

Редактировать: Изображение вывода в соответствии с запросом

enter image description here

Редактировать 2: Текст вывода в соответствии с запросом

Array ( [0] => Hannibal [firstname] => Hannibal [1] => Lecter [lastname] => Lecter [2] => Cannibals Inc. [name] => Cannibals Inc. ) {"0":"Hannibal","firstname":"Hannibal","1":"Lecter","lastname":"Lecter","2":"Cannibals Inc.","name":"Cannibals Inc."}

1 Ответ

0 голосов
/ 13 сентября 2018

Используя следующее в качестве тестового кода, я нахожу две вещи:

a.Вы выбираете как индексированные, так и ассоциативные массивы из базы данных.Запишите в JSON нумерованный индекс и значение, затем ассоциативное имя (имя столбца) и значение:

"0":"Hannibal","firstname":"Hannibal"

Вы должны получать только то, что хотите.Например, я бы использовал mysqli_fetch_assoc() здесь - давая мне имена и значения столбцов.

b.Вы перебираете данные, а затем пытаетесь перебрать полученный текст: именно это и вызывает ошибку.Например, row2 на первой итерации содержит значение Hannibal, поэтому второй цикл, по сути, пытается это сделать:

$.each('Hannibal',function(key2,value2){...

Hannibal, просто являясь текстом, не может проходить черезэтот.У него нет ключей или значений.

Вам нужен только один цикл для этих данных.Вот тестовый код, подтверждающий это:

var guest_data =  {"0":"Hannibal","firstname":"Hannibal","1":"Lecter","lastname":"Lecter","2":"Cannibals Inc.","name":"Cannibals Inc."};

function createTableByJqueryEach2(data2){

    var eTable2="<table><tr><th colspan='5'>Gäste einladen</th></tr><tr><th>Person</th></tr>"
    $.each(data2,function(index2, row2){

        eTable2 += "<tr>";
        eTable2 += "<td>"+row2+"</td>";
        eTable2 += "</tr>";
    });
    eTable2 +="</table>";
    $('#guest_table').html(eTable2);
 }

 createTableByJqueryEach2(guest_data);

Это приводит к следующему:

<div id="guest_table">
    <table>
        <tbody>
            <tr>
                <th colspan="5">Gäste einladen</th>
            </tr>
            <tr>
                <th>Person</th>
            </tr>
            <tr>
                <td>Hannibal</td>
            </tr>
            <tr>
                <td>Lecter</td>
            </tr>
            <tr>
                <td>Cannibals Inc.</td>
            </tr>
            <tr>
                <td>Hannibal</td>
            </tr>
            <tr>
                <td>Lecter</td>
            </tr>
            <tr>
                <td>Cannibals Inc.</td>
            </tr>
        </tbody>
    </table>
</div>

Вероятно, вы хотите иметь другой макет, это именно то, что я сделалчтобы доказать ошибку.

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