2016-05-07 4 views
0

Angenommen, Sie möchten ein HTML/PHP-Skript erstellen, das eine Webseite mit 2 Schaltflächen erzeugt, auf die Sie beim Anklicken klicken können, auf welche Schaltfläche geklickt wurde. Der einzige Weg, um diese mit PHP zu tun, die ich kenne, ist die IndexdateiIst der Senden-Button die einzige Möglichkeit, eine PHP-Datei auszuführen?

<? include('buttons.php'); ?> 

<? include('clicked.php'); ?> 

zu schaffen, wo buttons.php im gleichen Verzeichnis gespeichert und enthält

<form method="post"> 

<input type="submit" name="button1" value="button1"> 
<input type="submit" name="button2" value="button2"> 

</form> 

Und das PHP-Skript angeklickt .php enthält

Diese Methode funktioniert, aber ich vermute, dass es nicht die beste Möglichkeit ist, PHP zu verwenden, um dieses Ergebnis zu erhalten.

Gibt es einen besseren Weg, dies zu tun?

+0

Sie tun bereits das Richtige –

+0

Sie könnten auch einen Link mit einem Parameter verwenden, dh. '...' und überprüfe mit 'if (isset ($ _ GET [' action '])) {if ($ _ GET [' aktion '] ==' button1 ') {} elseif ($ _ GET [' action '] ==' button2 ') {} ' – Sean

+0

Ihre Frage eher sein, gibt es eine andere Möglichkeit, es zu tun, denn dies scheint die normale Art zu sein, einen PHP-Code aufzurufen. –

Antwort

1

Dies ist eine serverseitige Lösung zum Ausführen einer PHP-Datei. Sie können diese jedoch mit clientseitigem Code und einem generischen Handler für die Ausführung in Echtzeit und das Laden von Seiten erreichen.

jQuery ist ein kostenloses, weltweit verwendetes Framework für JavaScript-Erweiterungen und einfach zu bedienen.

$("#btn-one").click(function() { 
    $.get("clicked.php", { button: 1}) 
    .done(function (data) { 
     body.innerHTML = data; 
    }); 
}); 

Ihre PHP (clicked.php) würde wie folgt aussehen:

if(isset($_GET['button'])): 
    switch($_GET['button']) 
    { 
     case 1: 
      echo "You pressed button 1"; 
      break; 
     case 2: 
      echo "You pressed button 2"; 
      break; 
     default: 
      break; 
    } 
endif; 

Und schließlich würde, Ihre HTML so aussehen!

<button type="button" id="btn-one">Button 1</button> 
0

Sie könnten Ihre eigenen Wrapper

class Input 
{ 
    public static function fetch($key, $rules=[]) 
    { 
     // ctype_alnum is used to check if the $key is alphanumeric 
     if (ctype_alnum($key) && isset($_POST[$key])) { 
      return $_POST[$key]; 
     } 
     return false; // or '' 
    } 
} 
// practical use 
// If string 
$option = (string) Input::fetch('option'); 

Ändern Sie den Namen erstellen Schaltfläche []

dann die Switch-Funktion verwenden.

Sie können das Argument rules verwenden, um Validierungsregeln hinzuzufügen und nach erwarteten Antworttypen zu suchen.

Verwandte Themen