Я ищу простое решение для вызова функции PHP только при нажатии тега .
PHP:
function removeday() { ... }
HTML:
<a href="" onclick="removeday()" class="deletebtn">Delete</a>
UPDATE: html и PHP-код находятся в одном файле PHP
Во-первых, поймите, что у вас есть три языка, работающих вместе.
PHP: выполняется только сервером и отвечает на запросы, такие как щелчок по ссылке (GET) или отправка формы (POST).
HTML и JavaScript: выполняется только в браузере кого-то (кроме NodeJS).
Я предполагаю, что ваш файл выглядит примерно так:
<html> <?php function runMyFunction() { echo 'I just ran a php function'; } if (isset($_GET['hello'])) { runMyFunction(); } ?> Hello there! <a href='index.php?hello=true'>Run PHP Function</a> </html>
Поскольку PHP отвечает только на запросы (GET, POST, PUT, PATCH и DELETE через $ _REQUEST), так вам нужно запускать функцию PHP, даже если они находятся в одном файле. Это дает вам уровень безопасности: «Должен ли я запускать этот скрипт для этого пользователя или нет?».
Если вы не хотите обновлять страницу, вы можете сделать запрос на PHP без обновления через метод под названием Асинхронный JavaScript и XML (AJAX).
Это то, что вы можете посмотреть на YouTube, хотя. Просто выполните поиск "jquery ajax"
Я рекомендую Laravel всем, кто начнет правильно: http://laravel.com/
В javascript выполните функцию ajax,
function myAjax() { $.ajax({ type: "POST", url: 'your_url/ajax.php', data:{action:'call_this'}, success:function(html) { alert(html); } }); }
Затем звоните из html,
<a href="" onclick="myAjax()" class="deletebtn">Delete</a>
И в вашем ajax.php,
if($_POST['action'] == 'call_this') { // call removeday() here }
Вам нужно будет сделать это через AJAX . Я HEAVILY рекомендую вам использовать jQuery, чтобы сделать это проще для вас ….
$("#idOfElement").on('click', function(){ $.ajax({ url: 'pathToPhpFile.php', dataType: 'json', success: function(data){ //data returned from php } }); )};
Это можно сделать и с довольно простым php, если это ваша кнопка
<input type="submit" name="submit>
и это ваш php-код
if(isset($_POST["submit"])) { php code here }
код get вызывается при отправке получаемого сообщения, которое происходит при нажатии кнопки.
Попробуйте сделать что-то вроде этого:
<!--Include jQuery--> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> function doSomething() { $.get("somepage.php"); return false; } </script> <a href="#" onclick="doSomething();">Click Me!</a>