Встраивание сценария php в атрибут действия формы

0

Почему это не работает?

<form action="<?php echo 'test'; ?>"><input type="submit"></form>

Почему эхо-тест "test", мне нужно будет поместить PHP в отдельный файл и указать на него атрибут действия? Если у меня есть несколько форм с короткими PHP-скриптами, могу ли я не просто встраивать их как-то в выполнение задач, а не делать много внешних файлов для этого?

Мое намерение состоит в том, чтобы иметь своего рода панель управления для внесения различных изменений в базу данных.

  • 0
    Как насчет объяснения, ПОЧЕМУ это плохой вопрос, а не голосование? Никакого дублирующего вопроса, пример кода предоставлен, что еще вы хотите?
Теги:
forms

2 ответа

1

Вы не можете поместить код в атрибут 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, чтобы получить некоторые идеи. Есть некоторые очень умные маршрутизаторы и абстракции контроллера. Это будет лучше, чем вы можете придумать, особенно если вы неопытны.

Примечание: нет ничего плохого в большом количестве небольших файлов - просто попробуйте использовать одну точку входа для своего веб-приложения.

  • 0
    У меня нет внешнего файла. Вот чего я пытаюсь избежать. Мне не нужны 10 файлов длиной всего 3 или 4 строки, если я могу разместить их в том же файле, что и формы
  • 0
    Понимаю. обновлено.
0

Потому что браузер не имеет и не может заботиться о PHP. Когда браузер получит этот HTML-код:

<form action="<?php echo 'test'; ?>"><input type="submit"></form>

Что он должен делать с этим? Просто "запустите PHP"? Вы имеете в виду PHP, который настроен и настроен на вашем сервере? Нет, это просто не так, как это работает.

В спецификации HTML указано, что атрибут action указывает на URL-адрес, по которому браузер отправит данные формы. Затем он полностью подходит к серверу с этим URL-адресом, чтобы что-то с ним делать, и что там, где работает PHP.

Вам также не нужно иметь отдельные физические файлы, вы можете отправлять все формы в один и тот же PHP файл /URL-адрес, который затем определяет, что он получил, и выдает разные вещи в зависимости от этого. Возможно, вы также захотите изучить запросы Javascript и AJAX.

  • 0
    Так есть ли альтернатива созданию нескольких файлов PHP? Могу ли я поместить PHP в тот же файл в верхней части страницы, а затем получить действие, указывающее на ту же страницу?
  • 0
    Да, точно. Никто не сказал, что это должны быть отдельные файлы. Это просто должен быть URL, и сервер может ответить всем, чем захочет. Это может быть даже URL-адрес формы.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню