Действие при нажатии на кнопку php

Действие при нажатии на кнопку php

Дата публикации: 2017-05-16

От автора: вчера нечаянно попал на странный спиритический сеанс – отчаянные студенты первого курса пытались осуществить вызов функции PHP. Что только не придумают «чайники»: то с бубном скачут, а теперь еще вот это. Но давайте попробуем обойтись более традиционными методами .

Бубен не понадобится

Пожалуйста, отложите все магические атрибуты в сторону. Запустите Денвер, скопируйте следующий код и посмотрите, как он работает «без бубна»:

Я хочу запустить функцию PHP с нажатием кнопки HTML.

Я могу вызвать PHP script следующим образом:

Но я не хочу ссылаться на "action.php". Я просто хочу назвать функцию PHP, определенную на этой странице. Это можно сделать?

8 ответов

7 Решение domnissient [2011-04-27 06:16:00]

Метод, который я предпочитаю использовать, представляет собой смесь jQuery/ajax, вызывающую объект-ориентированный класс PHP.

У меня есть слушатель jQuery/триггер для нажатия кнопки с чем-то вроде этого:

Это вызовет файл api.php через ajax и предотвратит любые дальнейшие действия, такие как отправка формы.

Затем в файле PHP вы всегда можете сделать что-то основное:

или если у вас есть огромные классы и много динамического ввода, вы можете сделать что-то более интересное, например:

Есть много способов приблизиться к этому, но это мои любимые. Другой альтернативой является инфраструктура Extjs, которая построена для такого вида деятельности, но если вы уже не знакомы с ней и проект не "огромный", я бы не стал заниматься этим.

Наконец, если вам нужно вернуть ответ из файла php, например, результаты json, вместо использования функции jQuery: $.get() используйте функцию $.getJSON

Надеюсь, что помогает:)

2 Max [2011-04-27 06:08:00]

Вам нужно сделать это с вашей стороны. Обработайте сообщение и вызовите функцию на странице action.php самостоятельно. Вы также можете создать отдельную страницу php для вызова функции, определенной в файле action.php.

Читайте также:  Как оптимизировать работу планшета

1 Tim Joyce [2011-04-27 06:16:00]

Вы можете легко сделать это с помощью jquery

0 Axe [2011-04-27 06:07:00]

У вас могут быть следующие подходы:

1 > Используйте AJAX для загрузки "action.php" с данными, введенными в поля как POST на страницу, а затем возьмите ответ и поместите его в тело; или,

2 > Вы не можете заставить его работать, поскольку PHP является языком программирования на стороне сервера и HTML, который вы пытаетесь использовать с PHP, является языком программирования на стороне клиента. Таким образом, нет возможности заставить его работать, кроме AJAX.

Это не сработает. PHP обрабатывается до тех пор, пока пользователь обрабатывает страницу. Вам нужно будет использовать AJAX для отправки данных на сервер и получения ответа.

Вы должны включить a.php В action.php, например:

если вы хотите, например, функцию ok() в a.php, теперь a.php существует в файле action.php

0 Ben [2011-04-27 06:07:00]

Это немного сложно. Вы можете либо отправить форму себе, проверьте, установлена ​​ли переменная post (если она есть, то страница выполняется, поскольку форма была отправлена), либо вы можете использовать ajax. Первое — это более легкое решение, а второе не требует перезагрузки страницы. Выберите свой яд;)

Посмотрите этот для первого решения и посмотрите jquery ajax функции для второго.

Стихи, рассказы, философия, IT, политика, панкизм, раздолбайство и болтовня.

На открытии районной детской библиотеки депутат Никонов кинул на бабки о. Всеволода Чаплина

Случилась тут небольшая задачка, как обработать две и более кнопок submit в HTML-форме, причем желательно без помощи JS и иных ухищрений, т.е. есть, например, такая форма:

Надо выяснить (на сервере), какую кнопку нажал пользователь.

На самом деле (ну если никто не поизвращался над браузером, т.е. клиентом) в отправленном серверу запросе POST будут только параметры нажатой кнопки. Если задать каждой кнопке уникальное имя, то можно будет отследить, какая кнопка была нажата, и, соответственно, обработать это.

Читайте также:  Как заменить фильтры аквафор осмо

Создадим тестовую форму multibutton.html :

И напишем скрипт-обработчик multibutton.go.php :

Если в массиве $_POST будет найден элемент button1 — обрабатываем нажатие кнопки #1 ( if (isset($_POST[‘button1’])) ), аналогично поступаем с другими кнопками. Текстовое поле — исключительно для теста, можно вписывать любое значение, оно будет показано пользователю.
Для наглядности выводится содержимое массива $_POST :

Получим следующее:
Нажата кнопка #1:

Нажата кнопка #2:

Нажата кнопка #3:

Можно объединить создание формы и вывод результата в единый скрипт: см. код на PasteBin

Ссылка на основную публикацию
Где делают стиральные машины
На просторах стран бывшего СССР бытует мнение, что домашняя техника, собранная заграницей намного лучше и качественней отечественной. Если же бытовые...
Видеокарта asus geforce gtx 460
Вниманию читателей предлагается обзор видеоускорителя ASUS ENGTX460 TOP. В целом GeForce GTX 460 является на данный момент самой модифицируемой картой...
Видеокарта asus geforce gtx 2080
Упаковка и комплектация ASUS ROG Strix GeForce RTX 2080 Gaming OC поставляется во всё той же яркой упаковке, что и...
Где искать диспетчер устройств
Диспетчер устройств помогает узнать, какое оборудование установлено на компьютере, обновить драйвера для любого устройства, проверить и изменить настройки оборудования. Где...
Adblock detector