Невозможно использовать ответ сервера в AJAX - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть файл .php на сервере.Я хочу, чтобы он отправлял значения 1 или 2 в зависимости от полученных блокировок.Однако я не могу использовать ответ сервера в Javascripts.Я пытался использовать innerHTML, но я не знаю, как использовать его значение.Я совершенно новичок в AJAX, поэтому прошу прощения за любые глупые ошибки, которые я, возможно, сделал.

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Код xmlhttp.onreadystatechange=reload() не будет делать то, что вы хотите. Это не определение и не назначение функции для обратного вызова onreadystatechange. Чтобы определить обратный вызов, ваш код должен выглядеть следующим образом:

xmlhttp.onreadystatechange = reload;

//later
function reload() {
    //the actions to do on response
}    

или

xmlhttp.onreadystatechange = function() {
    // the actions to do on response
}

Там не будет большой разницы для вашего текущего использования. Что бы вы ни выбрали, внутри вы должны иметь свой if(xmlhttp.readyState==4 && xmlhttp.status==200) код.

Затем речь идет об использовании полученного вами значения. Похоже, вы устанавливаете значение в myDiv, а затем пытаетесь использовать его позже (хотя myDiv == 1 не будет работать в любом случае). Однако вам не нужно этого делать. В вашей функции readystatechange вы можете просто напрямую использовать значение:

if (xmlhttp.responseText == "1")
    document.campicture.src="a1.jpg";
else
    document.campicture.src="a2.jpg";

Помните, что эта часть входит в функцию (анонимную или нет), которая связана с onreadystatechange.

0 голосов
/ 24 февраля 2012

Используйте jQuery, это упростит запросы Ajax и модификацию атрибутов.

<script>
function loadXMLDoc()
{
    var xmlhttp;
    $.ajax({
        url: 'lock.php',
        type: 'GET',
        success: function(responseText) {
            if(responseText === 1)
                $("#campicture").attr('src', 'a1.jpg');
            else
                $("#campicture").attr('src', 'a2.jpg');

        }
    })

    loadXMLDoc();
}
</script>

<img id="campicture" src="founders.jpg" border=1 width=320 height=240 alt="AYS         founder's IMAGE"><br />
...