Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема на php+ajax

53K
22 января 2010 года
Призрак
5 / / 10.12.2009
Возникла следующая проблема, уже даже не знаю в какую сторону копать.
Если кто-нибудь сможет помочь. то буду очень благодарен.


Есть следующий php скрипт

Код:
$query = mysql_query("SELECT `field` FROM `table` WHERE `x` = '$x");
while($row = mysql_fetch_array($query))
{
$row['field'];
echo $row['field']; // на этом момент из базы всё выводится корректно, то есть по циклу все имеющиеся значения
echo "<a href=\"\" &#111;&#110;Click=\"java script:script();\">Выход</a>";


echo "<script>
function script() {
$.get(\"script.php\", { name: \"".$row['field'].'\" },
   function(data){
     alert(\"Request: \" + data);
   });
}
</script>
";
}


Вот после передачи GET запроса и происходит проблема, передаётся только одно и тоже значение, вне зависимости в каком из результатов цикла нажать на "выход". Как это исправить, либо как поступить в данной ситуации?

Заранее спасибо
253
22 января 2010 года
Proger_XP
1.5K / / 07.08.2004
1) Зачем просто: $row['field']; в начале цикла?
2) onClick=\"java script:script();\" - неверно, просто ="script();"
3) в стандарте XHTML все атрибуты называются в нижнем регистре: onClick => onclick
4) самое главное. Естесственно, что скрипт будет передавать одно и тоже значение - ведь ты переопределяешь функцию script() каждый раз, поэтому при вызове ее из любого onclick будет передаваться только последнее значение.

Код:
$query = mysql_query("SELECT `field` FROM `table` WHERE `x` = '$x");
while($row = mysql_fetch_array($query)) {
  echo $row['field']; // на этом момент из базы всё выводится корректно, то есть по циклу все имеющиеся значения
  echo "<a href=\"\" &#111;&#110;click=\"script({$row['field']});\">Выход</a>";
}

echo <<<END
<script>
function script(name) {
$.get("script.php", { name: name },
   function(data){
     alert("Request: " + data);
   });
}
</script>
END
;
53K
22 января 2010 года
Призрак
5 / / 10.12.2009
1) Случайно вставил

Остальные пункты учёл, спасибо, буду знать :)

И большое спасибо за ответ, пока не очень получилось сделать, но думаю разберусь :)
253
22 января 2010 года
Proger_XP
1.5K / / 07.08.2004
Угу, спрашивай, если что :)
53K
22 января 2010 года
Призрак
5 / / 10.12.2009
Скрипт сразу не заработал, ошибка была в строке:
 
Код:
echo "<a href=\"\" &#111;&#110;click=\"script({$row['field']});\">Выход</a>";

Так как field - строка, то
 
Код:
echo "<a href=\"\" &#111;&#110;click=\"script('{$row['field']}');\">Выход</a>";

Теперь всё работает! Ещё раз спасибо
253
22 января 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Скрипт сразу не заработал, ошибка была в строке:


А, ну да. Кстати, еще один совет по поводу ссылок, которые только выполняют JavaScript.
1) если уж их делаешь, то не оставляй href пустым, пиши туда, например, "#".
2) но, вообще, если <a> никуда "не ссылается", то его и использовать не стоит. onclick есть у любого элемента, поэтому лучше используй span, div или еще что-то. Тогда браузер не будет перезагружать страницу и делать прочие действия, нормальные для ссылок.
Ну а внешний вид для такого span'а ты можешь с помощью CSS любой задать.

13
22 января 2010 года
RussianSpy
3.0K / / 04.07.2006
href таких ссылок лучше всего делать так:

 
Код:
<a href="java script:void(0)" &#111;&#110;click="func()">Link</a>


Хотя все же лучше ссылки для подобных вещей не использовать.
253
22 января 2010 года
Proger_XP
1.5K / / 07.08.2004
Про java script:void(0) я в нескольких местах читал очень негативные отзывы (вроде как это не по стандарту + поисковики не всегда правильно их понимают, как-то так), поэтому обычно, если нужно использовать <a>, делаю как href="#" и onclick="...; return false;"
13
22 января 2010 года
RussianSpy
3.0K / / 04.07.2006
Ну использование ссылки вместо кнопки - это уже не по стандарту. А понимают все более-менее современные браузеры. Даже с уродами вроде ИЕ5.5 и ИЕ6 проблем не наблюдается.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог