У меня есть умный проект, и в файле .tpl есть форма:
<form method = "get" action = "{$smarty.server.PHP_SELF}?action=func1">
<input type = "text" name = "username"/>
<input type = "submit">
</form>
есть вопрос, если файл php имеет много функций для разных запросов действий, поэтому в шаблоне, если есть много форм, я хочу через action для различения.
но в моей практике, см. верхний код, я пишу так, это не может доставить action в мой файл php.
Я хочу записать action в форме action, потому что это может быть более стандартным. поэтому я не хочу писать это на скрытом входе. почему написать в экшене нельзя перейти в php файл?






Вы можете использовать кнопку отправки с указанным именем и значением:
<form method = "get" action = "{$smarty.server.PHP_SELF}">
<input type = "text" name = "username" />
<input type = "submit" name = "action" value = "func1" />
</form>
и тогда вы получите глобальную переменную $ _POST ['action'] со значением func1. Но значение будет отображаться в заголовке вашей кнопки, поэтому я предлагаю вам находить формы только по имени отправки, например name = 'submit_form1'.
Метод формы - это "получить", вы ничего не получите с помощью $ _POST ['action']
@ sof-03, нет, это будут данные $ _POST как переменная username.
но если задано так, значение = 'func1', как установить замену значения текста кнопки ввода?
Вы не можете. но вы можете найти форму просто по имени кнопки, например: if (isset($_POST['submit_button_form1'])) { # ... }, независимо от того, какое значение содержит эта переменная.
ты про
$_GET['action']?