Когда пользователь щелкает ссылку в панели навигации моего веб-приложения, имя ссылки присваивается переменной javascript ('team').Затем переменная отправляется в php через AJAX «POST», чтобы использовать ее для запроса mySQL, чтобы заполнить информационную панель новыми данными.У меня все работает, кроме функции успеха AJAX.
Когда я пытаюсь получить входные данные панели мониторинга для обновления html div, я не могу правильно получить необходимую информацию, которая отправляется в виде массива в обратном вызове.
В соответствии с отладкой сети инструмента разработчика iиметь следующий массив json в качестве обратного вызова в части php:
array(7) { ["team_id"]=> string(1) "2" ["name"]=> string(17) "Borussia Dortmund" ["logo"]=> string(56) "https://github.com/Phanti1893/dasocc/blob/master/165.png" ["founded"]=> string(4) "1909" ["venue_capacity"]=> string(5) "81365" ["squad_value"]=> string(3) "634" ["total_national_trophies"]=> string(2) "12" }
Когда я использую следующую функцию успеха, я просто получаю 'y' в html-контейнере (который, очевидно, является 4-м индексным показателем вобратный вызов в «массиве»).Здесь я хочу получить отдельные элементы в массиве, чтобы заполнить мою панель мониторинга на внешнем интерфейсе (.selectedClub - один из многих примеров):
$('ul.subbar li a').on('click', function(e) { // Start function when user clicks on a team in the navbar
e.preventDefault(); // Stop loading new link?
var team = $(this).html(); // Assign clicked team name to variable
$.ajax({
method: "POST",
url: "includes/script.php",
data: {team: team},
data_type: "json",
success: function(data) {
$('.selectedClub').html(data[4]);
}
});
console.log(team); // check for console, remove later
});
это мой php-скрипт, который делает SQL-запрос с переменной'team':
<?php
include_once 'dbh.inc.php';
if (isset($_POST['team'])) {
$team = $_POST['team'];
$sql = "SELECT * from teams WHERE name = '$team';"; // task sent to server
$result = mysqli_query($conn, $sql); // returns object resource
$teamarray = $result->fetch_assoc(); // pass object to an array
$name = $teamarray ["name"];
$logo = $teamarray ["logo"];
$founded = $teamarray ["founded"];
$venue_capacity = $teamarray ["venue_capacity"];
$squad_value = $teamarray ["squad_value"];
$total_national_trophies = $teamarray ["total_national_trophies"];
var_dump($teamarray);
}
?>
РЕДАКТИРОВАТЬ: Я думаю, проблема в том, что я не получаю массив JSON в ответ, а простой HTML / текст из-за инструментов разработчика Chrome:
Connection: Keep-Alive
Content-Length: 341
Content-Type: text/html; charset=UTF-8
Date: Sun, 22 Sep 2019 09:11:57 GMT
Keep-Alive: timeout=5, max=97
Server: Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.9
X-Powered-By: PHP/7.3.9