$query = mysql_query("SELECT `field` FROM `table` WHERE `x` = '$x");
while($row = mysql_fetch_array($query))
{
$row['field'];
echo $row['field']; // на этом момент из базы всё выводится корректно, то есть по циклу все имеющиеся значения
echo "<a href=\"\" onClick=\"java script:script();\">Выход</a>";
echo "<script>
function script() {
$.get(\"script.php\", { name: \"".$row['field'].'\" },
function(data){
alert(\"Request: \" + data);
});
}
</script>
";
}
Проблема на php+ajax
Если кто-нибудь сможет помочь. то буду очень благодарен.
Есть следующий php скрипт
Код:
Вот после передачи GET запроса и происходит проблема, передаётся только одно и тоже значение, вне зависимости в каком из результатов цикла нажать на "выход". Как это исправить, либо как поступить в данной ситуации?
Заранее спасибо
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=\"\" onclick=\"script({$row['field']});\">Выход</a>";
}
echo <<<END
<script>
function script(name) {
$.get("script.php", { name: name },
function(data){
alert("Request: " + data);
});
}
</script>
END;
while($row = mysql_fetch_array($query)) {
echo $row['field']; // на этом момент из базы всё выводится корректно, то есть по циклу все имеющиеся значения
echo "<a href=\"\" onclick=\"script({$row['field']});\">Выход</a>";
}
echo <<<END
<script>
function script(name) {
$.get("script.php", { name: name },
function(data){
alert("Request: " + data);
});
}
</script>
END;
Остальные пункты учёл, спасибо, буду знать :)
И большое спасибо за ответ, пока не очень получилось сделать, но думаю разберусь :)
Угу, спрашивай, если что :)
Код:
echo "<a href=\"\" onclick=\"script({$row['field']});\">Выход</a>";
Так как field - строка, то
Код:
echo "<a href=\"\" onclick=\"script('{$row['field']}');\">Выход</a>";
Теперь всё работает! Ещё раз спасибо
Цитата:
Скрипт сразу не заработал, ошибка была в строке:
А, ну да. Кстати, еще один совет по поводу ссылок, которые только выполняют JavaScript.
1) если уж их делаешь, то не оставляй href пустым, пиши туда, например, "#".
2) но, вообще, если <a> никуда "не ссылается", то его и использовать не стоит. onclick есть у любого элемента, поэтому лучше используй span, div или еще что-то. Тогда браузер не будет перезагружать страницу и делать прочие действия, нормальные для ссылок.
Ну а внешний вид для такого span'а ты можешь с помощью CSS любой задать.
Код:
<a href="java script:void(0)" onclick="func()">Link</a>
Хотя все же лучше ссылки для подобных вещей не использовать.
Про java script:void(0) я в нескольких местах читал очень негативные отзывы (вроде как это не по стандарту + поисковики не всегда правильно их понимают, как-то так), поэтому обычно, если нужно использовать <a>, делаю как href="#" и onclick="...; return false;"
Ну использование ссылки вместо кнопки - это уже не по стандарту. А понимают все более-менее современные браузеры. Даже с уродами вроде ИЕ5.5 и ИЕ6 проблем не наблюдается.