Intereting Posts
почему session_destroy () не работает Отправка SMS-команд AT на 3G-модем с использованием PHP если инструкция else Как найти базовый URL-адрес приложения? Определите ближайший гексаговый цвет к списку существующих шестнадцатеричных значений Почему спецификация ISO-8601 выглядит повсеместно игнорируемой, когда речь идет о десятичных знаках? HostGator не отправит почту через PHP SwiftMail API Получить дату следующего понедельника, вторник и т. Д. Кто-нибудь когда-либо использовал PayPal Website Payments Standard с переменными SESSION? Сортировка Magento 1.7 по заказу – проблемы с бестселлерами Преобразование многомерного массива в одномерный Использовать класс базы данных PDO без создания нового подключения каждый раз? добавление счетчика на страницу php для подсчета уникальных посетителей В поле «Автоматическое приращение» введите 1000 в миграции laravel 5.1 Доступ к тегам внутри CDATA в XML с помощью PHP

Запустить функцию PHP при нажатии кнопки?

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

Я могу вызвать скрипт PHP таким образом:

<form action="action.php" method="post"> Name: <input type="text" name="txt"/> <input type="submit" /> </form> 

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

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

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

 $('#buttonId').live('click', function() { $.get('api.php?functionName=test&inputvar=something'); return false; }); - $('#buttonId').live('click', function() { $.get('api.php?functionName=test&inputvar=something'); return false; }); 

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

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

 if ($_REQUEST['functionName'] == 'test') { test(); } 

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

 $functionName = $_REQUEST['functionName']; if (method_exists($myClassInstance, $functionName)) $myClassInstance->$functionName(); 

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

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

Надеюсь, это поможет 🙂

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

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

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript"> function submitform(){ $('#myForm').post("pageName.php", $("#myForm").serialize()); } </script> </head> <form action="pageName.php" method="post" id"myForm"> Name: <input type="text" name="txt"/> <input type="submit" /> </form> 

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

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

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

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

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

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

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

action.php:

 include( 'a.php' ); //Your codes 

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

Вы можете попробовать:

 <form action="pageName.php/functionName" method="post"> Name: <input type="text" name="txt"/> <input type="submit" /> </form>