Hello! That would seem to be a simple example. The user enters the text, presses the button, the reboot does not occur (AJAX technology), the data gets to the server and is processed (convert to upper case). If the request is successful, the word Yes and the data from the server will be displayed, if not, the word Error. It's simple, but it turned out not all. Look at the code, what's wrong?
index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>New Страница</title> <!-- подключаем библиотеку онлайн через Google CDN --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> </head> <body> <form action="a.php" method="POST"> <input type="text" name="a" /> <br /> <br /> <button type="submit">OK</button> </form> <p></p> <br /> <br /> <label></label> <script> $(document).ready(function () { $('button').click(function() { //преобразуем данные формы в строку, но нам же нужен формат JSON //var data = $('form').serialize(); //создаем объект данных var obj { a: $('[name=a]').val() } //превращаем объект в строку формата JSON var strInForm = JSON.stringify(obj); $.ajax({ url: "a.php", cache: false, type: "POST", dataType: 'json', data: strInForm, success: function (str) { $('p').text('Yes!'); //превращаем строку формата JSON в массив var ara = JSON.parse(str); //обращаемся к массиву по индексу $('label').text(ara[0]); }, error: function() { $('p').text('Error!'); } }); }); }); </script> </body> </html>
a.php
<?php //строковые данные должны быть в кодировке UTF-8 header('Content-type: text/html; charset=utf-8'); //обычный способ, строка пришла на сервер //$str = $_POST['a']; //но теоретически, должна ведь приходить строка, которую //мы превратили из объекта в строку формата JSON //и она должна соотвествовать строке, указанной в data: strInForm $str = $_POST['strInForm']; //теперь превращаем эту строку в массив, так как она может //иметь несколько значений $ara1 = json_decode($str); //что-то делаем на сервере, преобразуем строку в верхний регистр $str = strtoupper($ara1[0]); //теперь будем отправлять строку обратно //помещаем строку в массив $ara2 = array($str); //кодируем массив в строку формата JSON $str = json_encode($ara2); //возрващаем строку в формате JSON echo = $str; ?>