Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Cсылки в ajax
 
 автор: Denandi   (06.01.2010 в 09:19)   письмо автору
 
 

Всем привет!
Как реализовать задачу.
Мне нужно, на одну стр передать по ссылке параметры- аяксом.
Выглядит – так:
<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)??? БЕЗ СОДЕРЖИМОГО СТР.

  Ответить  
 
 автор: sl1p   (06.01.2010 в 09:42)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: Denandi   (06.01.2010 в 15:02)   письмо автору
 
   для: sl1p   (06.01.2010 в 09:42)
 

Пока не получилось, тут буду разбираться почему не работает с href
вопрос в другом, как во втором варианте вытащить только нужные переменные, а не загружать всю страницу.. почему responseText - вся страница а не строка?

  Ответить  
 
 автор: sl1p   (06.01.2010 в 15:10)   письмо автору
 
   для: Denandi   (06.01.2010 в 15:02)
 

непонятно что и куда вытащить, какая строка какая страница?
что вообще должно приходить в responseText?

  Ответить  
 
 автор: Denandi   (06.01.2010 в 17:53)   письмо автору
 
   для: 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);
        }
     } 
   }

  Ответить  
 
 автор: ride   (06.01.2010 в 23:50)   письмо автору
 
   для: Denandi   (06.01.2010 в 17:53)
 

ну так в test.php возвращайте только параметры, а не всю страницу.

  Ответить  
 
 автор: Denandi   (07.01.2010 в 08:24)   письмо автору
 
   для: ride   (06.01.2010 в 23:50)
 

не получается, как нада?

  Ответить  
 
 автор: dyadya   (07.01.2010 в 23:20)   письмо автору
 
   для: Denandi   (07.01.2010 в 08:24)
 

Можно посмотреть, что у Вас в test.php?

  Ответить  
 
 автор: Denandi   (08.01.2010 в 09:12)   письмо автору
 
   для: dyadya   (07.01.2010 в 23:20)
 

Какая разница – какое там содержимое??? Например, текст.. это вообще тестовая страница.
По задумке, постраничная для фото. Мне надо с стр test.php отправлять и принимать там же параметры. Только чисто параметры. У меня получается вся стр. – дублируется.
решение должно быть простое. вот и спросил - как сделать.

  Ответить  
 
 автор: sl1p   (08.01.2010 в 09:23)   письмо автору
 
   для: Denandi   (08.01.2010 в 09:12)
 

потому что ваш test.php возможно возвращает целую страницу. Какойто редирект например.

  Ответить  
 
 автор: dyadya   (08.01.2010 в 10:46)   письмо автору
 
   для: Denandi   (08.01.2010 в 09:12)
 

Какая разница – какое там содержимое??? Например, текст.. это вообще тестовая страница

responseText - содержит тело ответа в виде строки и передает только текст
Чтобы получить свои "параметры" Вы должны их вывести на своей тестовой странице через
echo

  Ответить  
 
 автор: Denandi   (08.01.2010 в 11:16)   письмо автору
 
   для: dyadya   (08.01.2010 в 10:46)
 

... читайте пост внимательней.

  Ответить  
 
 автор: dyadya   (08.01.2010 в 11:34)   письмо автору
 
   для: Denandi   (08.01.2010 в 11:16)
 

Вы плохо понимаете, как работает Объект XMLHttpRequest.
Почитайте здесь http://xmlhttprequest.ru/
Конкретно цитата:
Свойство responseText получит такой же текст страницы, как браузер, если бы Вы в перешли на /xhr/test.html. Для сервера GET-запрос через XmlHttpRequest ничем не отличается от обычного перехода на страницу.

  Ответить  
 
 автор: Denandi   (08.01.2010 в 12:34)   письмо автору
 
   для: dyadya   (08.01.2010 в 11:34)
 

Все это читал, ранее.
Вывод echo $_GET[‘x1’] – не играет роли. В контейнер грузится вся страница! Мне же нужен один элемент - echo $_GET[‘x1’]
Попробую выразить иначе:
xmlHttp.responseText; возвращает документ целиком, можно ли положить результат в переменную, а потом обращаться к элементам что-то типа GetElementbyId?

  Ответить  
 
 автор: sl1p   (08.01.2010 в 12:40)   письмо автору
 
   для: 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:42)   письмо автору
 
   для: sl1p   (08.01.2010 в 12:40)
 

А вот если уже test.php передаёт полную страницу, тогда выкладывайте полный код.
Будет возвращено всё что можно увидеть в исходном коде браузера (html код и т.д.)

  Ответить  
 
 автор: Denandi   (08.01.2010 в 12:55)   письмо автору
 
   для: sl1p   (08.01.2010 в 12:42)
 

хорошо.

  Ответить  
 
 автор: sl1p   (08.01.2010 в 13:51)   письмо автору
 
   для: Denandi   (08.01.2010 в 12:55)
 

если вы хотите делать так криво, то можно эту байду не через ajax а через невидимый iframe грузить и там уже и по айди и по чему хотите

  Ответить  
 
 автор: АЯ   (08.01.2010 в 13:40)   письмо автору
 
   для: 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".

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования