Получить ответ от PHP файла с помощью AJAX
Итак, вот моя проблема, я использую AJAX (jQuery), чтобы отправить форму на process.php
, но на странице действительно нужно откликнуть ответ, например apple
или plum
. Я не уверен, как принять ответ от process.php
и сохранить его как переменную...
Вот код, который у меня есть до сих пор:
<script type="text/javascript">
function returnwasset(){
alert('return sent');
$.ajax({
type: "POST",
url: "process.php",
data: somedata;
success function(){
//echo what the server sent back...
}
});
}
</script>
Также мне нужно будет откликнуть ответ в process.php
в json? или текст будет в порядке?
Извините, если это звучит как глупый вопрос, я впервые делаю что-то как таковое в Ajax.
PS: Как я могу назвать запрос POST в приведенном выше коде?
Ответы
Ответ 1
<?php echo 'apple'; ?>
почти буквально все, что вам нужно на сервере.
как для стороны JS, вывод серверной стороны script передается как параметр функции обработчика успеха, поэтому у вас будет
success: function(data) {
alert(data); // apple
}
Ответ 2
Хорошая практика заключается в следующем:
$.ajax({
type: "POST",
url: "/ajax/request.html",
data: {action: 'test'},
dataType:'JSON',
success: function(response){
console.log(response.blablabla);
// put on console what server sent back...
}
});
а часть php:
<?php
if(isset($_POST['action']) && !empty($_POST['action'])) {
echo json_encode(array("blablabla"=>$variable));
}
?>
Ответ 3
<script type="text/javascript">
function returnwasset(){
alert('return sent');
$.ajax({
type: "POST",
url: "process.php",
data: somedata;
dataType:'text'; //or HTML, JSON, etc.
success: function(response){
alert(response);
//echo what the server sent back...
}
});
}
</script>
Ответ 4
в вашем файле PHP, когда вы эхо своих данных используете json_encode (http://php.net/manual/en/function.json-encode.php)
например.
<?php
//plum or data...
$output = array("data","plum");
echo json_encode($output);
?>
в вашем javascript-коде, когда ваш ajax завершает json-кодированные данные ответа, можно превратить в массив js следующим образом:
$.ajax({
type: "POST",
url: "process.php",
data: somedata;
success function(json_data){
var data_array = $.parseJSON(json_data);
//access your data like this:
var plum_or_whatever = data_array['output'];.
//continue from here...
}
});
Ответ 5
var data="your data";//ex data="id="+id;
$.ajax({
method : "POST",
url : "file name", //url: "demo.php"
data : "data",
success : function(result){
//set result to div or target
//ex $("#divid).html(result)
}
});