wake-up-neo.net

Lauf PHP Funktion beim Klicken auf die Schaltfläche "HTML"

Ich muss einige PHP - Funktion ausführen, wenn auf eine Schaltfläche geklickt wird. Ich weiß, dass dies nicht PHP sein soll, sondern js sollte es tun, aber was meine Funktionen beim Sammeln von Daten von einem Server tun, wenn der Benutzer es fragt Insbesondere werden einige Benutzerdaten abgerufen und in eine Datei geschrieben, und der Benutzer sollte entscheiden, welche Daten erfasst werden.
Wie kann ich das machen? Ich habe den Post Run PHP File On Button Click gesehen, aber ich bin immer noch nicht sicher, wie er verwendet werden soll.
Ich lerne, also sei bitte nicht zu hart

Ich habe onclick() und alle möglichen Dinge ausprobiert, aber es führte zu nichts Nützlichem

10
Bujanca Mihai

Eine PHP-Datei wird immer dann ausgeführt, wenn Sie über eine HTTP-Anforderung (GET, POST, PUT) darauf zugreifen.

Sie können JQuery/Ajax verwenden, um eine Anforderung per Klick zu senden oder die URL des Browsers zu ändern, um zur PHP-Adresse zu navigieren.

Abhängig von den im POST/GET gesendeten Daten kann eine switch-Anweisung eine andere Funktion ausführen.

Funktion über GET festlegen

Sie können den Code hier verwenden: So rufen Sie die PHP - Funktion von einem String auf, der in einer Variablen gespeichert ist und einer switch-Anweisung, um abhängig von den gesendeten Daten automatisch die entsprechende Funktion aufzurufen.

Auf der Seite PHP können Sie etwa Folgendes haben:

<?php

//see http://php.net/manual/en/function.call-user-func-array.php how to use extensively
if(isset($_GET['runFunction']) && function_exists($_GET['runFunction']))
call_user_func($_GET['runFunction']);
else
echo "Function not found or wrong input";

function test()
{
echo("test");
}

function hello()
{
echo("hello");
}

?>

und Sie können die einfachste Get-Anfrage mit der Adressleiste als Test erstellen:

http://127.0.0.1/test.php?runFunction=hellodddddd

ergebnisse in:

Function not found or wrong input

http://127.0.0.1/test.php?runFunction=hello

ergebnisse in:

hello

Senden der Daten

GET-Anfrage über JQuery

Siehe: http://api.jquery.com/jQuery.get/

$.get("test.cgi", { name: "John"})
.done(function(data) {
  alert("Data Loaded: " + data);
});

POST Anfrage über JQuery

Siehe: http://api.jquery.com/jQuery.post/

$.post("test.php", { name: "John"} );

GET Anfrage über Javascript location

Siehe: http://www.javascripter.net/faq/buttonli.htm

<input type=button 
value="insert button text here"
onClick="self.location='Your_URL_here.php?name=hello'">

Daten lesen (PHP)

Lesen Sie unter PHP Turotial den Beitrag und erhalten Sie: http://www.tizag.com/phpT/postget.php

Nützliche Links

http://php.net/manual/de/function.call-user-func.phphttp://php.net/manual/de/function.function-exists.php

13

Wenn Sie eine Serveranfrage machen möchten, sollten Sie AJAX verwenden, damit Sie Ihre gewünschten Parameter an den Server senden können, und er kann mit diesen Parametern einen beliebigen PHP ausführen, den Sie möchten.

Beispiel mit reinem Javascript:

<input type="text" id="name" value="..."/>
<input type="text" id="location" value="..."/>
<input type="button" onclick="ajaxFunction();" value="Submit" />
<div id="ajaxDiv"></div>
<script type="text/javascript">    
    function ajaxFunction(){
        var ajaxRequest;  // The variable that makes Ajax possible!

        try{
            // Opera 8.0+, Firefox, Safari
            ajaxRequest = new XMLHttpRequest();
        } catch (e){
            // Internet Explorer Browsers
            try{
                ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try{
                    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e){
                    // Something went wrong
                    alert("Your browser broke!");
                    return false;
                }
            }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
            if(ajaxRequest.readyState == 4){
                var ajaxDisplay = document.getElementById('ajaxDiv');
                ajaxDisplay.innerHTML = ajaxRequest.responseText;
            }
        }
        var name = document.getElementById('name').value;
        var location = document.getElementById('location').value;
        var queryString = "?name=" + name + "&location=" + location;
        ajaxRequest.open("POST", "some.php" + queryString, true);
        ajaxRequest.send(null); 
    }
</script>

Beispiel mit jQuery Ajax:http://api.jquery.com/jQuery.ajax/

$.ajax({
  type: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

Sie können eine Datei mit Funktionen haben, die beispielsweise functions.php aufgerufen wird

functions.php

<?php
  myFunction($Name, $Location) {
      // etc...
  }
  myFunction2() {
  }
  // ... many functions
?>

some.php

<?php include("functions.php");    
$Name = $_POST['name'];
$Location = $_POST['location'];

myFunction($Name, $Location);

// make what you want with these variables...?>
3
bksi

Verwenden Sie Ajax, ein einfaches Beispiel,

HTML

<button id="button">Get Data</button>

Javascript

var button = document.getElementById("button");

button.addEventListener("click" ajaxFunction, false);

var ajaxFunction = function () {
    // ajax code here
}

Alternativ schauen Sie in jquery ajaxhttp://api.jquery.com/jQuery.ajax/

2
GriffLab
<?php
if (isset($_POST['str'])){
function printme($str){
echo $str;
}

printme("{$_POST['str']}");
}
?>
<form action="<?php $_PHP_SELF ?>" method="POST">
<input type="text" name="str" /> <input type="submit" value="Submit"/>
</form>
1
Uday Hiwarale

Verwenden Sie eine AJAX - Anforderung in Ihrer PHP -Datei und zeigen Sie das Ergebnis auf Ihrer Seite an, ohne es erneut zu laden.

http://api.jquery.com/load/ Dies ist eine einfache Lösung, wenn Sie keine POST - Daten benötigen.

0
Piry

Es hängt davon ab, welche Funktion Sie ausführen möchten. Wenn Sie auf dem Server etwas tun müssen, z. B. eine Datenbank abfragen oder etwas in der Sitzung einstellen oder etwas, das auf Clientseite nicht möglich ist, benötigen Sie AJAX. Andernfalls können Sie es auf Clientseite mit JavaScript . Don tun Machen Sie den Server nicht zum Laufen, wenn Sie auf Client-Seite das tun können, was Sie tun müssen.

jQuery bietet eine einfache Möglichkeit, ajax auszuführen: http://api.jquery.com/jQuery.ajax/

0
Virus721