[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с GET
Skaz
Всем доброй ночи. Хочу осуществить переход по ссылкам с помощью ajax, но не получается кое-что.



<script type="text/javascript" src="rest.js"></script>
</
head>
<
body onload='process()'>

<
a href="../quickstart/index.php?a=1">1 ссылка</a>
<
br>
<
a href="../quickstart/index.php?a=2">2 ссылка</a>
<
div id="divMessage" />
</
body>



<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<response>';
$a = $_GET['a'];
if ($a==1) { echo "<b>Один</b>";}
if ($a==2) { echo "Два";}
echo '</response>';
?>


Вопрос такой.. какие параметры должны быть. Если взять гетом, то подскажите как осуществить это в js коде
xmlHttp.open("GET", "rest.php?a="+ , true);


ответ:
xmlResponse = xmlHttp.responseText;
document.getElementById("divMessage").innerHTML =
'<i>' + xmlResponse + '</i>';




Спустя 6 часов, 20 минут, 22 секунды (15.01.2012 - 09:34) nugle написал(а):
ссылки сделай такого вида
<a id="a1" onclick="ajax_a(this)">1 ссылка</a>

А в js уже вытаскиваешь id элемента передаешь его в ссылку. В скрипте обработчика $a = explode('a', $a);

Спустя 2 часа, 26 минут, 8 секунд (15.01.2012 - 12:00) Skaz написал(а):
Цитата (nugle @ 15.01.2012 - 06:34)
ссылки сделай такого вида
<a id="a1" onclick="ajax_a(this)">1 ссылка</a>

А в js уже вытаскиваешь id элемента передаешь его в ссылку. В скрипте обработчика $a = explode('a', $a);

Можно подробнее "А в js уже вытаскиваешь id элемента передаешь его в ссылку."? Не получается
пробовал так:

var a = document.getElementByID(a1);
xmlHttp.open("GET", "rest.php?a="+ a, true);

Спустя 5 минут, 10 секунд (15.01.2012 - 12:05) nugle написал(а):
Skaz
ajax_a(this), сделай функцию ajax_a(e), в которой и будет проходить ajax, а в этой функции var a = e.id;

Спустя 14 минут, 28 секунд (15.01.2012 - 12:20) Skaz написал(а):
Цитата (nugle @ 15.01.2012 - 09:05)
Skaz
ajax_a(this), сделай функцию ajax_a(e), в которой и будет проходить ajax, а в этой функции var a = e.id;

Что-то чем дальше, тем все меньше начинаю понимать (
"сделай функцию ajax_a(e), в которой и будет проходить ajax"
у нас уже есть ф-я, где проходит ajax <body onload='process()'>

Спустя 15 минут, 48 секунд (15.01.2012 - 12:36) nugle написал(а):
Skaz
у тебя аякс должен происходить не по загрузке body, а по клику на ссылку

Спустя 5 минут, 51 секунда (15.01.2012 - 12:42) Skaz написал(а):
Цитата (nugle @ 15.01.2012 - 09:36)
Skaz
у тебя аякс должен происходить не по загрузке body, а по клику на ссылку

а, ок, понял это.
Но как определить id ссылки и записать в xmlHttp.open, чтобы гетом обработчику передалось a1 или a2, чтобы он знал какое условие совершить?

Спустя 7 минут, 50 секунд (15.01.2012 - 12:49) nugle написал(а):

ссылку такого вида делаешь
<a id="a1" onclick="process(this)">1 ссылка</a>
в функции process(e), чтобы достать id сделай var a = e.id;
e - это элемент переданный в функцию

Спустя 6 минут, 43 секунды (15.01.2012 - 12:56) Skaz написал(а):
Цитата (nugle @ 15.01.2012 - 09:49)
ссылку такого вида делаешь
<a id="a1" onclick="process(this)">1 ссылка</a>
в функции process(e), чтобы достать id сделай var a = e.id;
e - это элемент переданный в функцию

Вот, что пишет:
e is undefined
[Прерывать на этой ошибке]
var a = e.id;

Спустя 5 минут, 47 секунд (15.01.2012 - 13:02) nugle написал(а):
Skaz
покажи html и js коды

Спустя 3 минуты, 49 секунд (15.01.2012 - 13:06) Skaz написал(а):
Цитата (nugle @ 15.01.2012 - 10:02)
Skaz
покажи html  и js коды


<script type="text/javascript" src="rest.js"></script>
</head>
<body >
<a
id="a1" onclick="process(this)">1 ссылка</a>
<br>
<a
id="a2" onclick="process(this)">2 ссылка</a>
<div
id="divMessage" />
</body>




var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject()
{
var xmlHttp;
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}

else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}

if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return
xmlHttp;
}
function process(e)
{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
var a = e.id;
xmlHttp.open("GET", "rest.php?a="+ a, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
setTimeout('process()', 1000);
}
function handleServerResponse()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
xmlResponse = xmlHttp.responseText;
document.getElementById("divMessage").innerHTML =
'<i>' + xmlResponse + '</i>';
setTimeout('process()', 1000);
}
else
{
alert("There was a problem accessing the server: " + xmlHttp.statusText);
}
}
}




$a = $_GET['a'];
$a = explode('a', $a);
if ($a==1) { echo "<b>Один</b>";}
if ($a==2) { echo "Два";}

Спустя 25 минут, 15 секунд (15.01.2012 - 13:31) nugle написал(а):
поищи в интернете ответы, просто я ухожу сейчас.
я не знаю почему через алерт выводит, а переменной не присваивает

Спустя 23 минуты, 48 секунд (15.01.2012 - 13:55) Skaz написал(а):
Цитата (nugle @ 15.01.2012 - 10:31)
поищи в интернете ответы, просто я ухожу сейчас.
я не знаю почему через алерт выводит, а переменной не присваивает

Ошибку показывает в консоле в фаерфоксе

Спустя 10 минут, 44 секунды (15.01.2012 - 14:06) alex12060 написал(а):
Skaz

выводит ошибку из-за этого блока.
Я особо не вникал в его суть, но точно здесь.


if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
var a = e.id;
xmlHttp.open("GET", "rest.php?a="+ a, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
setTimeout('process()', 1000); // Тут в параметр должен передаться this, но его нет, из-за этого выпадает undefined. Узнай, почему так происходит или смени условие
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.