Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Никита Козин 12.02.2005 08:07
Парсер - это вам не яваскрипт, это серверный язык, т.е. выполняется на сервере, а не у клиента. Когда вы нажимаете на ссылку - уходит запрос к серверу, тот в свою очередь выполняет какие-то, вами определенные, действия, соответствующие запросу клиента.^connect[$connect_string]{ $links[^table::sql{SELECT * FROM links ORDER BY `id`}] # вместо звездочки - указывайте все нужные поля чтобы # в будущем код был понятен и вам и может быть еще кому ^if($links){ ^links.menu{ <a href="$links[^table::sql{DELETE FROM `links` WHERE `id`=124}] "><nobr>Удалить</nobr></a> # тут все самое интересное и начинается: # 1. зачем выбирать ВСЕ поля таблицы, если вы их # не используете? # 2. table::sql - возвращает таблицу, вам же # не нужно ничего возвращать, нужно всего лишь # удалить запись из базы. используйте void:sql # 3. когда вы пишете явное значение id - удаление # происходит при загрузке страницы, а не при нажатии # на ссылку. Если вы посмотрите код откртой странички # (view source) - то увидите: <a href=" "><nobr>Удалить</nobr></a> }[] # Если вы не используете разделить, то и скобки # писать не нужно }{Удалять нечего} } </td>А теперь примерно как должно быть:
... ^if($links){ <ul> ^links.menu{ <li>$links.title (<a href="?do=delete&id=$links.id">удалить</a>)</li> } </ul> } ... ^if($def $form:do && $form:do eq 'delete' && ^form:id.int[]){ ^void:sql{DELETE FROM links WHERE id = $form:id} }