Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Возврат значения из Php файла при работе через ajax (https://javascript.ru/forum/css-html/78171-vozvrat-znacheniya-iz-php-fajjla-pri-rabote-cherez-ajax.html)

shiva 05.08.2019 14:54

Возврат значения из Php файла при работе через ajax
 
Всем привет.

Есть форма, данные которой через ajax (без JQuery) отправляются в php-файл. В нем выполняются проверки на сущестовование каталога и возможность записи файла в каталог. Если все ок - тогда пишем файл.

Результат этих проверок нужно вернуть в js-файл, с которого происходит через ajax передача данных, - что бы вывести далее этот результат на странице. Возможно ли это сделать?

Ниже приведен код из JS-файла:

var http = new XMLHttpRequest(), f = this;
evt.preventDefault();
http.open("POST", "send.php", true);
http.onreadystatechange = function()
{
if (http.readyState == 4 && http.status == 200)
{

сюда нужно получить результат перемной из php-файла

}
}
};

send.php

if($_POST){
$file = 'data/'.$_POST['time-file'];//назначаем имя файла
$current = $_POST['levels'];//задаем содержимое файла

$err = '';

if (is_writable($file))
$err = 'Файл недоступен для записи';


if (!file_exists('data'))
$err = "Файл data не существует";


if($err === '')
file_put_contents($file, $current);//пишем в файл
};

ksa 05.08.2019 15:02

Цитата:

Сообщение от shiva
Возможно ли это сделать?

Конечно можно. :yes:
Вернуть можно любой текст, или еще какие-то данные... Потом обработать их скриптом и сделать нужные действия.

Только нужно помнить, что ответ может быть асинхронным (как у тебя) и когда придет не известно... Может вообще не прийти.

ksa 05.08.2019 15:06

Цитата:

Сообщение от shiva
сюда нужно получить результат перемной из php-файла

Для начала можно написать
alert(http.responseText);

Это если твой php-файл будет возвращать текст сообщения...

shiva 05.08.2019 16:31

Спасибо.

Как понимаю, уже работая со строкой http.responseText, выкинуть массив передаваемых через $_POST значений и то что после массива идет - с этим и работать?

ksa 06.08.2019 07:44

shiva, ты можешь с сервера вернуть любые данные, любой структуры... Главное потом их правильно обработать на клиенте.

shiva 06.08.2019 08:00

Спасибо. Все получилось.:thanks:


Часовой пояс GMT +3, время: 19:41.