ajax - вернуть только часть ответа - PullRequest
5 голосов
/ 10 мая 2011

Ниже приведен фрагмент моего ajax-кода, в данный момент моя переменная 'resp' возвращает полный ответ из test.php Есть ли способ, которым я могу просто вернуть responseText между указанным тегом? то есть. просто верните responseText HTML-кода внутри div.id = "xyz" test.php?

var loc="test.php?myinput=apple";
ajax.onreadystatechange=function() {
        if (ajax.readyState==4  && ajax.status == 200) {    
            var resp =  ajax.responseText;
        }
    }
ajax.open("GET",loc,true);
ajax.send(null);

Ответы [ 4 ]

2 голосов
/ 10 мая 2011

Вы можете использовать сокращенную функцию jquery load (), чтобы сделать это быстро

$('#result').load('test.php' #container');

здесь результат - это div, в который вы хотите поместить текст ответа и Контейнер - это указанное вами расположение исходного элемента test.php

это то, что вы хотите?

1 голос
/ 10 мая 2011

Если вы хотите перейти на jQuery, вы можете сделать следующее

$.ajax({
    url: 'test.php?myinput=apple',
    method: 'POST',
    success : function( data ) {
        var content = $(data).find('#xyz').text();
        // alternativly the HTML
        // var content = $(data).find('#xyz').html();
    }
});
1 голос
/ 10 мая 2011

Вы пытаетесь обновить некоторую часть вашего HTML с этим ответом? Если это так, вы можете использовать jQuery и вызвать метод load, который принимает специальный параметр URL для загрузки части возвращаемого HTML:

Рабочий пример: http://jsfiddle.net/marcosfromero/P5KTv/

1 голос
/ 10 мая 2011

измените свой ajax-код на:

if (ajax.readyState==4  && ajax.status == 200) {    
   eval(ajax.responseText);
}

, затем на странице test.php напишите для ответа, подобного этому

echo "document.getElementById('xyz').innerHTML='abc';";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...