Ответы пользователя по тегу PHP
  • Как отправить через jquery ajax, get параметры?

    powerdot
    @powerdot
    Ведущий программист
    Мои коллеги говорят все верно, разберемся еще раз с запросом к серверу (к php-файлу):

    jQuery.ajax() с GET-запросом можно заменить на jQuery.get()

    Немного простой теории:
    Когда Вы вручную пробуете организовать Get-запрос, то Вы просто в браузере запрашиваете ссылку со своими параметрами. Когда страница загрузилась - запрос к файлу выполнился.
    mysite.ru/action.php?param=value

    То есть, грубо говоря, чтобы скрипт выполнился, нужно просто запустить (задействовать) нужный файл. Что и делает Ajax. Он просто открывает (как Вы в браузере) эту страницу, но вы этого не видите.
    Причем, он делает это асинхронно (код будет работать и дальше, не ожидая ответа), для чего нужны колбеки (функции, которые выполняются после успешного/неуспешного запроса).

    Как сделать запрос?
    //В этом случае просто выполнился скрипт
    $.get('http://mysite.ru/action.php');
    
    //Параметры можно отправить как в ссылке, так и отдельно
    $.get('http://mysite.ru/action.php?param=1');
    //или
    $.get('http://mysite.ru/action.php', {param: 1});
    
    //а что на счет колбеков?
    //они нужны, чтобы выполнить какой-либо код после выполнения запроса
    //ну, например, если после успешного запроса пишется "ok" в action.php
    $.get('http://mysite.ru/action.php', {param: 1}).done(function(data){
       //data - это аргумент, в который передается содержимое страницы
       if(data=="ok"){
           alert("Сервер всем доволен")
       }
    });
    Ответ написан
    Комментировать
  • Как получить данные с сервера через jquery ajax?

    powerdot
    @powerdot
    Ведущий программист
    в целом, у Вас все верно, можно ajax сократить до .get:
    $.get('testcall.php').done(function(data){
       //data - получаемая с сервера информация, парсим ее
       data = $.parseJSON(data);
       //то, что нужно сделать зависит от формата полученных данных
       //в моем случае массив может быть таким: data = ['один','два','три']
       //теперь выведем всё в виде текста в указанный div#one:
       for(int i=0; i<data.length; i++){ //если передается объект как массив
          $('#one').append(data[i]); // методом перебора всех ключей, дополняем инфомрацию в div'e
          //и добавляем перенос строчки
          $('#one').append('<br>');
       }
    })
    Ответ написан