Вызов функции PHP из HTML-формы в том же файле?
Я пытаюсь выполнить функцию PHP на той же странице после того, как пользователь вводит текст и нажимает кнопку «Отправить».
первое, о чем я думаю, это использование форм. Когда пользователь отправляет форму, функция PHP будет выполнена на той же странице. Пользователь не будет перенаправлен на другую страницу. Обработка будет выполнена и отображена на той же странице (без перезагрузки)
вот что я достигаю:
10 ответов
это не может быть сделано так, как вы говорите. PHP является серверной стороной, в то время как форма существует на стороне клиента. Вам нужно будет изучить использование Javascript и / или AJAX, если вы не хотите обновлять страницу.
у вас есть большое непонимание того, как работает web.
в основном, все происходит таким образом:
- пользователь (ну, браузер) запрашивает test.php с сервера
- на сервере test.php запускается, все внутри выполняется, и результирующая HTML-страница (которая включает вашу форму) будет отправлена обратно в браузер
- браузер отображает форму, пользователь может взаимодействовать с ним.
- пользователь отправляет форму URL, определенный в action , который в данном случае является одним и тем же файлом), поэтому все начинается с самого начала (кроме данных в форме также будет отправлено). Новый запрос на сервер, запуск PHP и т. д. Это означает, что страница будет обновляться.
вы пытались вызвать test() из своего . Этот метод используется для запуска на стороне клиента скрипт, который в большинстве случаев в JavaScript (код будет выполнен в браузере пользователя). Что ничего общего с PHP, которая составляет на стороне сервера, находится на вашем сервере и будет работать только если запрос приходит. Пожалуйста, прочитайте клиентское и серверное кодирование например.
если вы хотите что-то сделать, не вызывая обновления страницы, Вы должны использовать Javascript для отправки запроса в фоновом режиме на сервер, позволить PHP делать то, что ему нужно, и получить от него ответ. Этот метод в основном называется AJAX, и вы можете найти множество ресурсов с помощью Google (например,удивительный учебник Mozilla).
без перезагрузки, используя только html y php, это не возможно, но это может быть очень похоже на то, что вы хотите, но вам нужно перезагрузить:
вот PHP-скрипт, чтобы сделать то, что вы описываете, хотя и бессмысленно. Вам нужно прочитать на стороне сервера и на стороне клиента. PHP не может работать на стороне клиента, вы должны использовать javascript для взаимодействия с сервером или мириться с обновлением страницы. Если вы не можете этого понять, вы не сможете использовать мой код (или чей-либо еще) в своих интересах.
следующий код выполняет вызов AJAX без jQuery и вызывает тот же скрипт для потоковой передачи XML в AJAX. Он затем вставляет имя пользователя и <br/> в div под окно пользователя.
пожалуйста, вернитесь к изучению основ, прежде чем пытаться преследовать что-то столь продвинутое, как AJAX. Вы будете только запутывать себя в конце и потенциально тратить деньги других людей.
использовать SAJAX или переключиться на JavaScript
Sajax-это инструмент с открытым исходным кодом, чтобы сделать Программирование сайтов с помощью Ajax рамки — также известный как XMLHttpRequest или удаленные сценарии — как можно проще. Sajax делает его легко вызвать PHP, Perl или Python функции с ваших веб-страниц через JavaScript без выполнения обновление браузера.
вот как работает PHP. test() будет выполняться при загрузке страницы, а не при нажатии кнопки Submit.
чтобы делать такие вещи, вы должны иметь onclick атрибут выполните вызов AJAX для файла PHP.
Если вы не хотите использовать Ajax и хотите перезагрузить свою страницу .
вы можете отправить форму без обновления страницы, но, насколько мне известно, это невозможно без использования JavaScript/AJAX вызова PHP-скрипта на вашем сервере. В следующем примере используется библиотека JavaScript jQuery.
HTML-код
Java Script
после отправки будет вызвана анонимная функция Javascript, которая просто отправляет запрос в ваш PHP-файл (который нужно будет быть в отдельные, кстати). The data выше должна быть строка запроса в кодировке URL, которую вы хотите отправить в файл PHP (в основном все текущие значения полей формы). Они появятся на вашем серверном PHP-скрипте в $_GET супер глобальный. Пример ниже.
если это ваша строка данных, то php-скрипт увидит это как:
однако вам нужно будет построить данные из формы поля, как они существуют для вашей формы, такие как:
(вам нужно будет пометить каждое поле формы «id», вышеуказанный идентификатор — «пользователь».)
после запуска скрипта PHP, success вызывается функция, и все выходные данные, созданные PHP-скриптом, будут сохранены в переменной html .
Как подключить PHP к HTML?
PHP — это встраиваемый серверный язык программирования. Большая часть его синтаксиса заимствована из C , Java и Perl . А также добавлена пара уникальных характерных только для PHP функций . Основная цель этого языка — создание динамически генерируемых PHP HTML страниц .
PHP в HTML
При создании сложных веб-страниц вы столкнетесь с необходимостью объединить PHP и HTML для реализации конкретных задач. На первый взгляд это может показаться сложным, так как PHP и HTML являются двумя независимыми дисциплинами, но это не так. PHP предназначен для взаимодействия с HTML , и его код может быть включен в разметку страницы.
В HTML-страницы PHP-код включается с помощью специальных тегов. Когда пользователь открывает страницу, сервер обрабатывает PHP-код , а затем отправляет результат обработки ( не сам PHP-код ) в браузер.
HTML и PHP довольно просто объединить. Любая часть PHP-скрипта за пределами тегов <?php ?> игнорируется PHP-компилятором и передается непосредственно в браузер. Если посмотреть на пример, приведенный ниже, то можно увидеть, что полный PHP-скрипт может выглядеть следующим образом:
Приведенный выше код — это обычный HTML с небольшим фрагментом PHP , который выводит текущую дату, используя встроенную функцию date . При этом весь HTML будет игнорироваться PHP-компилятором и передаваться в браузер без изменений.
Интегрировать PHP в HTML действительно очень легко. Помните, что скрипт — это HTML-страница с включением определенного PHP кода . Можно создать скрипт, который будет содержать только HTML (без тегов <?php ?>), и он будет нормально работать.
Более продвинутые методы:

PHP в HTML с помощью short_open_tag
Если нужно максимально сократить код, перед тем, как в PHP вставить HTML , вы можете использовать short_tags . В результате не нужно будет вводить <?php в начале кода, сократив это выражение до <?. Чтобы включить опцию, необходимо обновить файл php.ini и переключить значение параметра » short_tags » с » Off » на » On «. Хотя на большинстве серверов этот параметр уже включен, всегда лучше проверить это вручную. Проблема, которая может возникнуть при использовании коротких тегов — это конфликт при использовании XML . В XML синтаксическое выражение <? обозначает запуск функции обработки. Чтобы обойти эту проблему, можно использовать альтернативный тег <?=.
PHP в HTML с помощью short__tag
Имейте в виду, что если нужно создать сайт, совместимый с максимальным количеством платформ, при вставке PHP в HTML не стоит полагаться на short_tags .
HTML в PHP с использованием echo
Еще один способ интеграции HTML в PHP-файл — команда echo: .
Возможное, но не рекомендуемое использование:
Это повлияет на подсветку разметки в большинстве редакторов. Поэтому необходимо выделять все двойные кавычки внутри HTML-кода с помощью обратной косой черты.
PHP в HTML — расширения файлов
Файл, содержащий PHP в HTML , должен иметь расширение .php .Также можно настроить файл .htaccess для чтения PHP-кода в HTML-файлах без изменения расширения. Ниже приведены » обработчики «, которые нужно добавить, чтобы настроить эту функцию.
Для стандартно настроенного веб-сервера :
Для веб-сервера с запущенным FastCGI :
HTML в PHP
Также можно использовать HTML-код в PHP-скриптах . Все, что нужно сделать, это при открытии страницы с помощью PHP изменить порядок открывающихся тегов HTML и PHP .
Использование HTML в PHP :
Такая вставка PHP в HTML позволяет использовать намного меньше кода. Здесь мы используем глобально $PHP_SELF , что позволяет использовать значения полей, указанные под ними, в том же файле. Как правило, для таких форм создается два файла: первый — сама HTML-форма , а второй — PHP-файл , который выполняет обработку.
Если у вас уже есть сложные PHP-приложения , которые используют большое количество файлов, и вы хотите упростить, этот метод может помочь.
Пожалуйста, оставляйте свои комментарии по текущей теме статьи. Мы очень благодарим вас за ваши комментарии, дизлайки, подписки, отклики, лайки!
Вызываем PHP-файл из HTML-тэга SCRIPT
Для начала смеем признаться, что это довольно бесполезная штука. Но данный пример наглядно иллюстрирует гибкость нашего дела и то, как к той или иной ситуации можно найти подход, если поразмыслить неординарно.
Когда нам приходилось обслуживать веб-сайты, целиком написанные на HTML, в те времена редко кто пользовался веб-программированием. Итак, каждый год клиенты, державшие веб-сайты, просили нас обновить все страницы так, чтобы на них была отображена актуальная дата авторского права. Это было очень нудно. Не совсем та работа, которую нам хотелось бы делать.
Итак, нам пришла в голову мысль разработать систему автоматического отображения текущего года на каждой странице. Но мы также не хотели включать javascript-библиотеку, не хотели использовать Ajax, и хотели, чтобы данные о дате брались с сервера, а не от клиента.
Итак, один из продвинутых PHP-программистов придумал сделать это следующим образом:
Если вы сделаете всё целиком на PHP, то ничего в итоге не получите, так как браузер ожидает javascript. Итак, мы дали браузеру javascript, вписав строки посредством PHP.
Это позволило нам выполнить все последующие требования: теперь мы больше не должны были обновлять данные об авторском праве каждый год, мы не использовали функционал Ajax и не внедряли никаких библиотек JS, а дата бралась с сервера, а не с машины клиента.
Для чего нам нужно знать и уметь делать это?
Возможно, вам и не нужно этого знать и уметь. Это было актуальным 5-6 лет назад, а в наше время большинство веб-сайтов основаны посредством веб-программирования и многие из них включают в себя библиотеки javascript. Итак, если вам доступна библиотека javascript, то вы можете вызвать PHP-файл при помощи Ajax.
Данный метод показался нам наглядным примером неординарного мышления при тех или иных обстоятельствах, который позволил нам использовать ресурсы сервера в статичных веб-страницах. Он также позволил нам сократить объемы кода. Очень важно отметить, что тэг позволяет нам загружать достаточно много различных типов файлов.
Стоит ли здесь заботиться о безопасности? На самом деле, мы даже не знаем. Нам кажется, что существуют приложения по анализу веб-сайтов и счётчики, которые используют тот же подход. Нам было бы интересно послушать ваши мнения по теме.
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях: