#php #jquery #mysql #ajax #json
#php #jquery #mysql #ajax #json
Вопрос:
В принципе, я хочу знать, как я могу передать массив из PHP в JSON и иметь возможность использовать его в моем js-файле, где находится jQuery, и с jQuery я использую $.ajax({}).
Я до сих пор:
$db = new PDO('mysql:host=localhost;dbname=names', 'username', 'password');
$stmt = $db->query('SELECT * FROM names ORDER BY name DESC');
$results = $stmt->fetchAll();
$namesArray = array();
foreach ($results as $row) {
array_push($namesArray, '<li>' . $row['name'] . '</li>');
}
echo json_encode($namesArray);
Что касается jQuery / AJAX, я не совсем уверен, как мне следует это делать. Единственное, что я хочу сделать в PHP, это заставить его выбирать все данные из базы данных (которая имеет один столбец, имена) и сохранять их в массиве через foreach, и я перенес их в отдельный массив.
Как бы я поступил с jQuery / AJAX? Я искал везде, и единственное, что я могу найти, это как создать функции поиска с помощью AJAX, хотя я не хочу искать одно имя, я хочу, чтобы отображалось каждое имя в базе данных. Заранее спасибо.
Обновить:
в моем index.html файл, который я связал с файлом .js, а также там у меня есть неупорядоченный список с классом: «имена».
Итак, для моего файла jQuery или .js-файла у меня есть
$(document).ready(function() {
$.ajax({
type: "POST",
dataType: "json",
url: "post.php",
data: { },
cache: false,
success: function() {
}
});
});
но я не уверен в том, что входит в переменную data, а также в функцию success, в которой я тоже запутался.
Если я забыл какую-либо важную информацию по выяснению этого, пожалуйста, дайте мне знать 🙂
Комментарии:
1. для этого вам нужен код jQuery, где он находится? Вам нужно вызвать $.ajax в коде jQuery, который вы не опубликовали.
2. Что касается серверной части, вы отлично справляетесь. Во внешнем интерфейсе вы должны использовать AJAX на своей веб-странице, чтобы взаимодействовать с серверной частью. Ознакомьтесь со следующим руководством: w3schools.com/jquery/jquery_ajax_intro.asp
Ответ №1:
Может быть что-то подобное с jQuery AJAX:
$.ajax({
type : 'POST',
url : 'path/to/your/file.php',
success : function(data){
console.log(JSON.parse(data));
},
});
Комментарии:
1. Спасибо, у меня было что-то подобное, но откуда берутся «данные». Когда я кодирую массив, как файл jQuery узнает, что это за массив или откуда он берется?
2.
data
это все, что у вас естьecho
. И это происходит из файла, определенного вurl
.3. Хорошо, спасибо, этот бит очень полезен. 🙂 Хотя я видел, как люди определяли переменную данных внутри $.ajax({data: ????}) подобным образом. Для чего это?
4. Я только что понял это! Большое спасибо за помощь, чувак. Я пытался выполнить foreach из массива в кодировке JSON из PHP, но оказалось, что я слишком много думал, и все, что мне нужно было сделать, это $(‘.names’).html(data); Я думал, что это сложнее. Большое спасибо за вашу помощь 🙂