Почему это не работает?
<form action="<?php echo 'test'; ?>"><input type="submit"></form>
Почему эхо-тест "test", мне нужно будет поместить PHP в отдельный файл и указать на него атрибут действия? Если у меня есть несколько форм с короткими PHP-скриптами, могу ли я не просто встраивать их как-то в выполнение задач, а не делать много внешних файлов для этого?
Мое намерение состоит в том, чтобы иметь своего рода панель управления для внесения различных изменений в базу данных.
Вы не можете поместить код в атрибут action, который просто не работает с HTML.
<form action="index.php">
<input type="hidden" name="do" value="dotest">
Вам понадобится маршрутизатор в вашем приложении, который отправляет задачи. В этом случае параметр запроса "делать" будет определять, что делать. Код может быть большим оператором switch (не рекомендуется), или вы можете хранить действия в отдельных методах files/classes/class. Вы можете напрямую искать код (file_exists
/file_exists
/method_exists
...), или вы можете отделить поиск и выполнить некоторую предварительную регистрацию и сохранить действия в словаре (array
).
Я бы рекомендовал проверить некоторые фреймворки PHP, чтобы получить некоторые идеи. Есть некоторые очень умные маршрутизаторы и абстракции контроллера. Это будет лучше, чем вы можете придумать, особенно если вы неопытны.
Примечание: нет ничего плохого в большом количестве небольших файлов - просто попробуйте использовать одну точку входа для своего веб-приложения.
Потому что браузер не имеет и не может заботиться о PHP. Когда браузер получит этот HTML-код:
<form action="<?php echo 'test'; ?>"><input type="submit"></form>
Что он должен делать с этим? Просто "запустите PHP"? Вы имеете в виду PHP, который настроен и настроен на вашем сервере? Нет, это просто не так, как это работает.
В спецификации HTML указано, что атрибут action
указывает на URL-адрес, по которому браузер отправит данные формы. Затем он полностью подходит к серверу с этим URL-адресом, чтобы что-то с ним делать, и что там, где работает PHP.
Вам также не нужно иметь отдельные физические файлы, вы можете отправлять все формы в один и тот же PHP файл /URL-адрес, который затем определяет, что он получил, и выдает разные вещи в зависимости от этого. Возможно, вы также захотите изучить запросы Javascript и AJAX.