это код, который у меня есть на index.html:
<html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script> $.ajax({ type: "POST", url: 'test.php', data: "check", success: function(data){ alert(data); } }); </script> </head> <body> <div></div> </body> </html>
Как я могу запрограммировать test.php для получения «данных», которые отправляются в API AJAX?
Вы задаете здесь очень простой вопрос. Сначала вы должны пройти несколько учебных пособий Ajax. Просто, чтобы помочь вам немного (если вы знаете методы GET и POST отправки данных), «данные» в данных: «проверка» отличается от «данных» в функции (данных), различны. Для ясности вы должны назвать их разными:
$.ajax({ type: "POST", url: 'test.php', data: "check", success: function(response){ alert(response); } });
Это дает понять, что это данные, которые вы отправляете в файл test.php в параметрах POST, а другой – ответ, который вы получаете из файла test.php после его запуска. Фактически, параметр данных, который вы используете POST для test.php, должен быть хешем, как здесь (я предполагаю, что ключ называется «type» здесь:
$.ajax({ type: "POST", url: 'test.php', data: {"type":"check"}, success: function(response){ alert(response); } });
Очевидно, что в данных может быть больше пар ключ-вал.
Итак, если ваш файл test.php выглядит примерно так:
if(isset($_POST['type'])){ //Do something echo "The type you posted is ".$_POST['type']; }
В этом случае ваше предупреждение должно читать: «Тип, который вы опубликовали, – это проверка». Это изменится в зависимости от того, какое значение вы отправляете для клавиши «type» в вызове AJAX.
Вы можете попробовать это
$.ajax({ type: "POST", url: 'test.php', data: {"data":"check"}, success: function(data){ alert(data);//This will alert Success which is sent as the response to the ajax from the server } });
И в test.php
if(isset($_POST['data']) && $_POST['data'] == 'check'){ //$_POST['data'] contain the value that you sent via ajax //Do something echo 'Success'; }
Вы можете проверить это для более
Если вы хотите иметь дело с большим количеством данных с помощью jquery ajax. Я предпочитаю тип данных json.
$.ajax({ type: "POST", url: 'test.php', dataType: 'json', data: {"data":"check"}, success: function(data){ alert(data.value1); alert(data.value2); } });
if(isset($_POST['data']) && $_POST['data'] == 'check'){ //Data 1 $data['value1'] = 'Data 1 Got Successfully'; //Data 2 $data['value2'] = 'Data 2 Got Successfully'; $resonse = json_encode($data); echo $response; }
Ваш HTML будет
<html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script> $.ajax({ type: "POST", url: 'test.php', data: {"myvar":"check",}, success: function(data){ alert(data); } }); </script> </head> <body> <div></div> </body> </html>
Обратите внимание, что данные представляют собой массив, поэтому вам придется передавать переменную и ее значение в данных. Вы можете передавать несколько переменных в данных, разделяя их запятой.
И чтобы выбрать данные, отправленные вашим ajax, в test.php:
<?php if(isset($_POST['myvar'])) { $myVariable = $_POST['myvar']; echo $myVariable; //This would output the string passed in ajax, check } ?>
$ _POST зависит от типа, используемого в вызове AJAX. Если тип GET, в php это будет $ _GET. Простая вещь вместо этого будет $ _REQUEST, которая независимо от того, является ли вызов AJAX типом GET или POST.
$.ajax({//create an ajax request to load_page.php type: "POST", url: "test.php", data:{"data":"check"}, success: function(data) { if (data) { alert(data); } else { alert('Successfully not posted.'); } } });
В test.php
<?php if(isset($_POST['data'])){ echo 'successful'; } ?>
Вывод файла PHP будет отправлен в вашу функцию AJAX succes.