| Новости | 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}
}