|
|
|
| Всем привет!
Как реализовать задачу.
Мне нужно, на одну стр передать по ссылке параметры- аяксом.
Выглядит – так:
<a href='test.php?x1=100&x2=200' onclick="callServer(ПАРАМЕТРЫ);" id="qw" >GO</a>
|
В этом случае, не получилось использовать аякс!
Применил то-же, но иначе:
<button type="button" onClick="callServer('x1=100&x2=200')" id="qw">ajax</button>
| -
все срослось, но неуправляемо…
responseText – должен выдавать строку, но она явно не оформлена. Поэтому, я скромно получаю ВСЕ содержимое вместе с нужными параметрами!!!!
Вопрос, как вытащить, только(x1-x2)??? БЕЗ СОДЕРЖИМОГО СТР. | |
|
|
|
|
|
|
|
для: Denandi
(06.01.2010 в 09:19)
| | <a href='test.php?x1=100&x2=200' onclick="callServer(this.href.substr(this.href.indexOf('?')+1));" id="qw" >GO</a> | |
|
|
|
|
|
|
|
для: sl1p
(06.01.2010 в 09:42)
| | Пока не получилось, тут буду разбираться почему не работает с href
вопрос в другом, как во втором варианте вытащить только нужные переменные, а не загружать всю страницу.. почему responseText - вся страница а не строка?
|
| |
|
|
|
|
|
|
|
для: Denandi
(06.01.2010 в 15:02)
| | непонятно что и куда вытащить, какая строка какая страница?
что вообще должно приходить в responseText? | |
|
|
|
|
|
|
|
для: sl1p
(06.01.2010 в 15:10)
| | Прошу прощение за пустое пояснение, попробую еще раз!
Задача, например на странице index.php ОТПРАВИТЬ аяксом с помощью ссылки -параметры
<a href='test.php?x1=100&x2=200' onclick="callServer(ПАРАМЕТРЫ);" id="qw" >GO</a>
|
Или
<button type="button" onClick="callServer('x1=100&x2=200')" id="qw">ajax</button>
|
На ЭТОЙ-ЖЕ странице index.php нужно ПРИНЯТЬ $_GET[параметры].( 'x1=100&x2=200').
Вот и вся сложность.
По первой ссылке, не работает аякс .. еще не разобрался.
Сделал альтернативу <button>, отработал запрос через аякс, но выводит не только параметры.. а, ВСЮ СТРАНИЦУ..С ПАРАМЕТРАМИ.
Вот ,код в укорочено варианте
function callServer(params) {
// var q = document.getElementById('qw');
var url= "test.php?"+params;
xmlHttp.open("GET",url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}
function updatePage() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
document.getElementById("on").innerHTML = xmlHttp.responseText;
в DIV -грузится вся страница, а мне надо - толькло параметры.
Тут конечно не определенка с параметрами - нет четких данных, поэтому и грузит ВСЕ..:)
заранее благодарен за помощь.
}else{
alert("status is " + xmlHttp.status);
}
}
}
|
| |
|
|
|
|
|
|
|
для: Denandi
(06.01.2010 в 17:53)
| | ну так в test.php возвращайте только параметры, а не всю страницу. | |
|
|
|
|
|
|
|
для: ride
(06.01.2010 в 23:50)
| | не получается, как нада? | |
|
|
|
|
|
|
|
для: Denandi
(07.01.2010 в 08:24)
| | Можно посмотреть, что у Вас в test.php? | |
|
|
|
|
|
|
|
для: dyadya
(07.01.2010 в 23:20)
| | Какая разница – какое там содержимое??? Например, текст.. это вообще тестовая страница.
По задумке, постраничная для фото. Мне надо с стр test.php отправлять и принимать там же параметры. Только чисто параметры. У меня получается вся стр. – дублируется.
решение должно быть простое. вот и спросил - как сделать. | |
|
|
|
|
|
|
|
для: Denandi
(08.01.2010 в 09:12)
| | потому что ваш test.php возможно возвращает целую страницу. Какойто редирект например. | |
|
|
|
|
|
|
|
для: Denandi
(08.01.2010 в 09:12)
| | Какая разница – какое там содержимое??? Например, текст.. это вообще тестовая страница
responseText - содержит тело ответа в виде строки и передает только текст
Чтобы получить свои "параметры" Вы должны их вывести на своей тестовой странице через | |
|
|
|
|
|
|
|
для: dyadya
(08.01.2010 в 10:46)
| | ... читайте пост внимательней. | |
|
|
|
|
|
|
|
для: Denandi
(08.01.2010 в 11:16)
| | Вы плохо понимаете, как работает Объект XMLHttpRequest.
Почитайте здесь http://xmlhttprequest.ru/
Конкретно цитата:
Свойство responseText получит такой же текст страницы, как браузер, если бы Вы в перешли на /xhr/test.html. Для сервера GET-запрос через XmlHttpRequest ничем не отличается от обычного перехода на страницу. | |
|
|
|
|
|
|
|
для: dyadya
(08.01.2010 в 11:34)
| | Все это читал, ранее.
Вывод echo $_GET[‘x1’] – не играет роли. В контейнер грузится вся страница! Мне же нужен один элемент - echo $_GET[‘x1’]
Попробую выразить иначе:
xmlHttp.responseText; возвращает документ целиком, можно ли положить результат в переменную, а потом обращаться к элементам что-то типа GetElementbyId? | |
|
|
|
|
|
|
|
для: Denandi
(08.01.2010 в 12:34)
| | нет можно на test.php
передать чтото вроде:
echo "{index1:1, index2: 2}";
далее когда принимаем(js):
var array = eval("("+ajx.responseText+")");
будем иметь массив.
----
Либо на testp.php передать такое:
echo "x1:x2";
в (js):
var array = ajx.responseText.split(":"); // где ":" разделитель в test.php
также получим нужные данные и легко к ним сможем обратиться. | |
|
|
|
|
|
|
|
для: sl1p
(08.01.2010 в 12:40)
| | А вот если уже test.php передаёт полную страницу, тогда выкладывайте полный код.
Будет возвращено всё что можно увидеть в исходном коде браузера (html код и т.д.) | |
|
|
|
|
|
|
|
для: sl1p
(08.01.2010 в 12:42)
| | хорошо. | |
|
|
|
|
|
|
|
для: Denandi
(08.01.2010 в 12:55)
| | если вы хотите делать так криво, то можно эту байду не через ajax а через невидимый iframe грузить и там уже и по айди и по чему хотите | |
|
|
|
|
|
|
|
для: Denandi
(08.01.2010 в 12:34)
| | >"Попробую выразить иначе: xmlHttp.responseText; возвращает документ целиком, можно ли положить результат в переменную, а потом обращаться к элементам что-то типа GetElementbyId?"
Прочитайте первое предложение в моём сообщении 04.01.2010 в 12:35 http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=70798&page=1
Подумайте.
И сами сможете ответить на свой вопрос правильным ответом - НЕЛЬЗЯ.
Потому что ни в какой СТРОКЕ СИМВОЛОВ не бывает каких-то "элементов" с "какими-то id". | |
|
|
|