В прошлой статье мы рассмотрели, как отправлять асинхронные запросы на JQuery с помощью метода $.Ajax() , а в этой я покажу ещё два способа.

Ajax запросы с помощью методов $.post() и $.get().

В прошлой статье мы рассмотрели, как отправлять асинхронные запросы на JQuery с помощью метода $.Ajax(), а в этой я покажу ещё два способа.

В качестве примера возьмём всё тот же server.php, который будет складывать 2 числа и возвращать нам их сумму.

$a = $_POST['a'];
$b = $_POST['b'];
echo $a+$b;

HTML разметка у нас то же будет такая же.

<html>
<head>
  <title>JQuery AJAX</title>
  <meta charset="utf-8">
  <script src="jquery.js"></script>
  <script src="main.js"></script>
</head>
<body>
  <input type="text" id="a">
  <input type="text" id="b">
  <button id="submit">Отправить!</button>
  <div id="block"></div>
</body>
</html>

Теперь напишем наш скрипт

$(document).ready(function(){
  $("#submit").click(function(){
   var fnumb = $("#a").val();
   var snumb = $("#b").val();
   $.post('server.php', {a:fnumb,b:snumb}, function(data){
    $("#block").text(data);
    });
   });
});

Как можно видеть, код стал немного короче, чем был в прошлой статье, потому что $.post() это ни что иное, как сокращённая форма метода $.Ajax() с запросом типа POST.

Первым параметров мы передаём строку, содержащую название нашего сервера, вторым параметром мы передаём объект, где указываем название переменной, которую отправляем и её значение через двоеточие, третьим параметром идёт анонимная функция, принимающая данные от сервера. В теле функции мы, как и в прошлой статье, вставили полученный результат в div с id=block.

Если вы хотите отправить запрос типа GET, то просто измените название метода с $.post() на $.get(), а параметры у него идентичные.

$(document).ready(function(){
  $("#submit").click(function(){
   var fnumb = $("#a").val();
   var snumb = $("#b").val();
   $.get('server.php', {a:fnumb,b:snumb}, function(data){
    $("#block").text(data);
   });
  });
});

Только не забудьте изменить также и наш сервер!

$a = $_GET['a']; $b = $_GET['b']; echo $a+$b;