Как получить значение data, которое передает php на js

120
27 марта 2018, 02:25

Возникла такая проблема, мне нужно следующее: 1. PHP передает значение на js в data 2. JS проверяет, какое значение ему было передано и выдолняет соответствующий код. Проблема в следующем: Я не могу просто написать if(data == "true"){, это не работает, как получить значение из data? Код js:

function onLogin(data)
            {
                if(data == "true"){
                    alert("true");
                }
                if(data == "false"){
                    alert("false");
                }
            }

Код php (да, пользователь должен ввести в качестве логина true или false, но это я потом исправлю, сейчас нужно именно научиться получать значение из data):

<?php
$login = $_POST['login'];
echo("$login");
?>

Отправка данных на сервер PHP:

$.post(
                            "check.php",
                            {
                            login: login
                            },
                            onLogin
                            );
Answer 1

Вот пример с вашим запросом. Функции выполняются асинхронно поэтому код выглядит как то так.

//кроссбраузерное создание объекта для работы с запросом
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
//основной код в виде отдельной функции
function main() {
    // (1) создать объект для запроса к серверу
    var req = getXmlHttp()  

//функция которая выполнится после получения ответа сервера
    req.onreadystatechange = function() {  
        if (req.readyState == 4) { 
      // тут ваши действия если сервер не ответил
      console.log("Сервер не отвечает");
    }
    else {
        if(req.status == 200) { 
        // если статус 200 (ОК) - проверяем данные
                data=req.responseText;
        //и вот тут ваши действия
        if(data == "true"){
                    alert("true");
                }
                if(data == "false"){
                    alert("false");
                }
            }
            // тут можно добавить else с обработкой других ошибок запроса
        }
    }
       // тут собственно выполняем запрос. у вас может быть другой адрес
    req.open('GET', '/ajax/data.php', true);  
    req.send(null);
        // Дальше просто ждем пока выполнится запрос
    console.log("Ожидаю ответа сервера..."); 
}

Если вы работаете через jq, то вам нужно написать как то так.

 $.post(
        "check.php",
        {
        login: login
        },
        .done(function(data) {onLogin(data);})
        );

Хотя это эквивалентно вашему варианту.

READ ALSO
Доступ к классам из любого места

Доступ к классам из любого места

Здравствуйте! Есть ли возможность в PHP соединить все классы и обращаться к ним из любого места? Те

167
php обрезать URL

php обрезать URL

Доброго времени суток всем, есть ссылка $_SERVER["REQUEST_URI"] такого вида mvc/cabinet/user, mvc/ это каталог в котором проект находится и его нужно обрезать...

128
cakephp предупреждение о ошибке авторизации

cakephp предупреждение о ошибке авторизации

Решил пройти туториал по последней версии cakephp (35

142