#php #ajax
#php #ajax
Вопрос:
В настоящее время я работаю над php-проектом с пользователем ajax. Мне нужно заполнить значения из базы данных в раскрывающемся списке html, и я хочу сделать это из сообщения ajax.
Для всех других ajax до сих пор в проекте я использовал $.post, но мне не нужно ничего публиковать в php-скрипте, поскольку он просто будет извлекать все из базы данных. что мне нужно сделать, так это то, что php-скрипт извлекает информацию из базы данных и заполняет информацию в массив, а затем возвращает массив вызывающему php-скрипту, который вызывает этот ajax.
Является ли идея с массивом лучшей идеей, если да, то как мне получить содержимое массива из ajax, или есть лучший способ и как мне выполнить вызов ajax, если я ничего не делаю post.
Спасибо за любую помощь, которую вы можете предоставить.
Комментарии:
1. Взгляните на xAjax, найденный здесь: xajax-project.org
Ответ №1:
Самый простой способ сделать то, что вы описываете, — это использовать JSON с вашим запросом jQuery Ajax, вот так:
// PHP side
<?php
// Do your database query, and then echo out your desired data like so:
echo json_encode(array(
'test' => 'your data',
'test2' => array('you can also use', 'arrays'),
'test3' => array('or' => 'keyed arrays'),
));
die(); // don't echo anything other JSON, or you'll get errors
?>
// Javascript side
$.post("url.com", post_data, function(json)
{
// Do something with your data here:
alert(json.test);
alert(json.test2[1]);
alert(json.test3["or"]);
}, "json");
Комментарии:
1. Хорошо, спасибо за вашу помощь. Единственная проблема, мне не нужно публиковать какие-либо данные, поэтому я не подумал, что $.post подходит, поскольку данных post нет.
2. на самом деле не имеет значения, является ли post пустым
3. Спасибо, у меня PHP-часть работает нормально, но в javascript продолжает появляться сообщение undefined, я ввел ‘platform’ => «myPlatform», а в javascript я ввел json.platform, но затем он отображает undefined.
Ответ №2:
$.ajax({
url: "your_script.php",
global: false,
type: "POST",
data: {},
dataType: "json",
async:false,
success: function(results){
//append your json results to your DOM
$('#some_div').html('');
for(var i = 0; i < results.length; i )
{
$('#some_div').append('<p>' results[i].html '</p>');
}
}
});
и вашему PHP потребуется json_encode результатов…
die(json_encode(array(array('html' => 'first'), array('html' => 'second'))));