Home

Advertisement

October 31st, 2009

for coders only (5)

  • Oct. 31st, 2009 at 6:17 PM
newman
есть объект (новость, пользователь, продукт), с которым, с помощью стандартного выпадающего меню (<SELECT>), необходимо совершать произвольные действия.

максимально оптимальное решение:

<SELECT onChange="eval(this.options[this.selectedIndex].value); this.selectedIndex = 0; return false;">
<OPTION VALUE="">действие</OPTION>
<OPTION VALUE="location.href = 'edituser.php?ids[]=<?=htmlspecialchars(stripslashes($user["id"]))?>';">редактировать</OPTION>
<OPTION VALUE="if (confirm('Удалить пользователя?')) location.href = 'engine.php?mode=deleteusers&ids[]=<?=htmlspecialchars(stripslashes($user["id"]))?>';">удалить</OPTION>
</SELECT>

как видно, в атрибут VALUE тега OPTION можно вставлять совершенно любой JS-код (при необходимости - смешанный с PHP-кодом) - очень удобно

SELECT не назван специально (так данный control можно размещать внутри любой формы другого назначения - никакого влияния на данные родительской формы не будет); по умолчанию активен первый OPTION и на нем onChange никогда не происходит - благодаря "this.selectedIndex = 0;"