Выполнить функцию PHP с помощью onClick

Я ищу простое решение для вызова функции 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 } }); )}; 

http://api.jquery.com/jQuery.ajax/

Это можно сделать и с довольно простым 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>