PHP functie uitvoeren met onclick

Ik ben op zoek naar een eenvoudige oplossing om een PHP functie alleen aan te roepen wanneer een-tag wordt aangeklikt.

PHP:

function removeday() { ... }

HTML:

<a href="" onclick="removeday()" class="deletebtn">Delete</a>

UPDATE: de html en PHP code staan in hetzelfde PHP bestand

Oplossing

Ten eerste, begrijp dat je drie talen hebt die samenwerken:

  • PHP: Het draait alleen op de server en reageert op verzoeken zoals het klikken op een link (GET) of het indienen van een formulier (POST).

  • HTML & JavaScript: Het draait alleen in iemand's browser (met uitzondering van NodeJS).

Ik neem aan dat je bestand er ongeveer zo uitziet:



<?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>

Omdat PHP alleen reageert op verzoeken (GET, POST, PUT, PATCH, en DELETE via $_REQUEST), moet je op deze manier een PHP functie uitvoeren, ook al staan ze'in hetzelfde bestand. Dit geeft je een niveau van veiligheid, "Moet ik dit script voor deze gebruiker uitvoeren of niet?".

Als u'de pagina niet wilt verversen, kunt u een verzoek aan PHP doen zonder te verversen via een methode die Asynchrone JavaScript en XML (AJAX) wordt genoemd.

Dat is echter iets wat je op YouTube kunt opzoeken. Zoek maar eens op "jquery ajax"

Ik raad iedereen die nieuw is Laravel aan om een goede start te maken: http://laravel.com/

Commentaren (5)

In javascript, maak een ajax functie,

function myAjax() {
      $.ajax({
           type: "POST",
           url: 'your_url/ajax.php',
           data:{action:'call_this'},
           success:function(html) {
             alert(html);
           }

      });
 }

Roep dan op vanuit html,

<a href="" onclick="myAjax()" class="deletebtn">Delete</a>

En in je ajax.php,

if($_POST['action'] == 'call_this') {
  // call removeday() here
}
Commentaren (2)

Je zult dit moeten doen via AJAX. Ik raad je ten zeerste aan om jQuery te gebruiken om dit makkelijker te maken voor je. ....

$("#idOfElement").on('click', function(){

    $.ajax({
       url: 'pathToPhpFile.php',
       dataType: 'json',
       success: function(data){
            //data returned from php
       }
    });
)};

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

Commentaren (4)