DriverCat

DriverCat
Рейтинг
116
Регистрация
10.04.2008

TC, простите за оффтоп - но что дает перелинковка квадратиками в саомо подвале главной страницы? никогда такого не видел...

ИМХО больше нравится solin...

было такое. открывался сайт только на одном компе. оказывается - не все провайдеры успели обновить базу dns - через день под всеми провами стало работать! надо просто подождать!

Мне кажется надо копать в сторону .htaccess RewiteRule...

SergejDergatsjev:
В дебри лезете господин.
Юзайте jquery
http://www.danvega.org/blog/index.cfm/2008/7/1/jQuery-Select-Example

Стандартная проблема миллион раз решалась.

http://docs.jquery.com/Main_Page

Спасибо, подозреваю, что это почти то же самое. Когда я разбирался с выпадающими списками связанными, jQuery еще не был распространен так, как сегодня. А сейчас понадобилось просто немного переделать старый скрипт.

Ведь по сути jQuery - тот же Ajax, только уже готовая библиотека, так?

alexspb:
DriverCat, нет разницы - php или js - надо проследить путь передаваемых переменных

у вас формируется урл, где передается значение

вместо списка, вы хотите ссылки, sendRequest() использует значение
document.getElementById('sel1').value
вам надо передать функции другое значение, как - вопрос удобства
решение в лоб, делаем ссылки с id соответствующими списку и передаем значение


создайте другую функцию
в самой функции sendRequest() надо заменить
file = 'ajax/list.php/?country='+ document.getElementById('sel1').value;
на
file = 'ajax/list.php?country='+ arguments[3];//там еще слэш лишний

Дальше, надеюсь, разберетесь

Спасибо Вам большое за потраченное время, все работает, разобрался!

Единственное не понял вот эту строчку:

sendRequest(arguments[0], 'how_to_add', getRequest, arguments[0]);
- зачем четвертый параметр? И без него вроде работает? =)

Да нет у меня ничего, я на php пишу в основном. Вот настала необходимость, нет времени сначала изучать, поэтому и прошу помощи.

Вот например есть файл:

<html>

<head>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<select id='sel1' name="country" onchange="javascript:sendSearchRequest()" class="required validate-selection">
<option value='nil'>- Выберите страну -</option>";
<?=$country_list?>
<option value="all">- Все страны -</option>
</select>
<script type="text/javascript">
sendSearchRequest();
</script>
<div id="cities"></div>
</body>
</html>

И есть ajax.php


function sendSearchRequest() {
sendRequest('ajax/list.php?country=' + document.getElementById('sel1').value, 'cities', getRequest);
}
function createHttpRequest() {
var httpRequest;
var browser = navigator.appName;

if (browser == "Microsoft Internet Explorer") {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpRequest = new XMLHttpRequest();
}

return httpRequest;
}
var resultId = '';

function getXmlHttp(){
var xmlhttp;
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
httpRequest = false;
}
}
if (!httpRequest && typeof XMLHttpRequest!='undefined') {
httpRequest = new XMLHttpRequest();
}
return xmlhttp;
}

function sendRequest(file, _resultId, getRequestProc)
{
if (file == 'ajax/list.php?country=all')
{
getXmlHttp();
file = 'ajax/list_countries.php';
resultId = 'countries';
document.getElementById(resultId).innerHTML = '<img src="/images/load.gif" alt="Loading..."/>';
httpRequest.open('get', file,true);
httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=windows-1251");
httpRequest.onreadystatechange = getRequestProc
httpRequest.send(null);
}
else
{
getXmlHttp();
file = 'ajax/list.php/?country='+ document.getElementById('sel1').value;
resultId = 'cities';
document.getElementById(resultId).innerHTML = '<img src="/images/load.gif" alt="Loading..."/>';
httpRequest.open('get', file,true);
httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=windows-1251");
httpRequest.onreadystatechange = getRequestProc
httpRequest.send(null);
}

}

function getRequest() {
if (httpRequest.readyState == 4) {
document.getElementById(resultId).innerHTML = httpRequest.responseText;
}
}

Меня интересует в первом листинге как вместо

<select id='sel1' name="country" onchange="javascript:sendSearchRequest()" class="required validate-selection">

сделать чтобы ссылка передавала значение при клике, типа:

<a href='' onclick='что здесь писать - onclick="javascript:sendSearchRequest() ????'>fgdfgd</a>

И во втором листинге функция

function sendSearchRequest() {

sendRequest('ajax/list.php?country=' + document.getElementById('sel1').value, 'cities', getRequest);
}

берет значение из выпадающего списка таким образом

document.getElementById('sel1').value
, но для тега <a> ведь нет атрибута value? Как мне тогда правильно получить доступ к значению? То есть, мне надо юту связку узел - функция правильно перестроить под работу со ссылкой но я не понимаю....
alexspb:
documentGetElementById - так и написано?
надо document.getElementById

ДА нет, это правильно, в поспехах ошибся...

есть ссылка <a href='' onclick='javascript:sendSearchRequest();'>

К файлу подключен файл с функциями, где

function sendSearchRequest() {

function sendRequest(documentGetElementById('id').value, '', '');

}

То есть sendSearchRequest принимает как я понимаю параметр от обработчика onclick, а затем передает его в функцию sendRequest с еще другими параметрами. Но documentGetElementById('id').value - это работает для выпадающего списка - то есть берется значение value каждой опции. А как правильно обработать ссылку с onclick?

Доброе утро!

Все-таки решил попробовать сделать через Ajax - мне кажется получится покрасивее и покороче. Но суть не в том. Была у меня когда-то функция для этого, она принимала значение getElementById('id').value от выпадающего меню, где стоит обработчик onchange соответственно. Так как в яваскрипте я не силен, попробовал к ссылке прикрутить обработчик onclick, то есть при клике у меня должно передаваться значение в функцию мою. Естественно ничего не работает. Как мне правильно изменить обработчик и саму функцию, чтобы она принимала значение при клике по ссылке. Помогите, пожалуйста!

DriverCat добавил 17.12.2009 в 12:52

Никто не подскажет?

Всего: 246