<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);
<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;
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, а по клику на ссылку
у тебя аякс должен происходить не по загрузке 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 коды
покажи 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. Узнай, почему так происходит или смени условие
}