Получить значения из массива из php ajax post

#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'))));