Я сейчас ищу Event_Handler & Dispatcher
класс, и был тот момент, чтобы сделать индивидуальный класс для каждого события.
Например, у меня есть база данных с некоторой записью, и я хочу выбрать между двумя действиями. & Просмотр записей.
Поэтому мне нужно создать два файла class.Handler_Edit
& class.Handler_View
, а затем в зависимости от нажатого ввода
<input type="submit" name="action" value="Edit"/>
OR
<input type="submit" name="action" value="View"/>
Мне нужно получить значение от $_POST['action']
и назовите, например, правильный класс
'class.Handler_' . $_POST['action'] . '.php'
а затем начать, например,
class.Handler_View.php
(в зависимости от выбранного входа).
Все круто, работает! Но проблема в том, что я использую русские слова для ввода значения. Не value="View"
& value="Edit"
, но value="Посмотреть"
& value="Редактировать"
,
И тогда я не могу назвать класс
class.Handler_Редактировать.php
Я нашел решение, которое я могу использовать buttons
вместо inputs
, например:
<button type="submit" name="action" value="edit">Редактировать</button>`.
Но правильный ли это способ решить эту проблему?
Может быть, это не лучшее решение отказаться от использования inputs
и использовать только buttons
?
Лучший способ решить эту проблему — использовать операторы if! Вот пример кода:
if ($_POST['action'] == "Посмотреть") {
// do something with 'class.Handler_View.php'
} else if ($_POST['action'] == "Редактировать") {
// do something with 'class.Handler_Edit.php'
} else {
//uh oh, you didnt get View or Edit!
}
Это также намного безопаснее, так как конечный пользователь может очень легко изменить значение формы! Также с помощью этого метода вы сможете использовать кнопки или входы!
Других решений пока нет …