So rufen Sie eine PHP-Datei aus HTML oder Javascript auf [closed]

Lesezeit: 11 Minuten

Ich habe mich jetzt lange umgesehen und kann nirgendwo eine Antwort auf diese scheinbar grundlegende Frage finden. Es ist mir egal, ob die Seite neu lädt oder die Ergebnisse sofort anzeigt; Ich möchte nur, dass eine Schaltfläche auf meiner Website eine PHP-Datei ausführt. Das ist es. Und ich habe festgestellt, dass alle Websites Ihnen entweder sagen, wie Sie den PHP-Code direkt in Ihrem HTML ausführen, oder Ihnen sagen, dass Sie Ajax verwenden sollen. Ich werde Ajax verwenden, wenn es sich als notwendig herausstellt, aber es gab eine Zeit, bevor es Ajax gab, in der PHP verwendet wurde, also denke ich, dass es einen einfacheren Weg gibt. Wenn ich den Code problemlos in HTML schreiben kann, warum kann ich dann nicht einfach auf die Datei darin verweisen oder einen einfachen Aufruf in Javascript durchführen?

Wenn sich herausstellt, dass Ajax der einzige Weg nach vorne ist, was muss ich darüber wissen, um eine PHP-Datei aufzurufen, die auf Knopfdruck eine Textdatei erstellt? Ich erstelle eine einfache Blog-Site für mich selbst und habe den Code für die Site und das Javascript, das den von mir geschriebenen Beitrag aufnehmen kann textarea und sofort anzeigen. Ich möchte es nur mit einer PHP-Datei verknüpfen, die den permanenten Blog-Beitrag auf dem Server erstellt, sodass der Beitrag immer noch vorhanden ist, wenn ich die Seite neu lade.

Vielen Dank, dass Sie sich die Zeit genommen haben, zu lesen und zu antworten.

  • schon mal was von $.ajax() gehört

    – patel.milanb

    17. Dezember 2013 um 15:22 Uhr

  • Willkommen bei StackOverflow. Bitte nehmen Sie sich etwas Zeit, um diesen Leitfaden zu lesen, bevor Sie Fragen posten: stackoverflow.com/questions/how-to-ask

    – Anzeigename fehlt

    17. Dezember 2013 um 15:23 Uhr

  • Wenn Sie AJAX vermeiden möchten, verwenden Sie einen iFrame

    – Reeno

    17. Dezember 2013 um 15:24 Uhr


  • Lesen Sie mehr über HTML-Formulare, das war’s.

    – Mondwelle99

    17. Dezember 2013 um 15:24 Uhr

  • Sie erstellen eine Blog-Site, die Textdateien zum Speichern verwendet … vielleicht möchten Sie sich die Datenbankerweiterungen von PHP ansehen

    – esqew

    17. Dezember 2013 um 15:25 Uhr


So rufen Sie eine PHP Datei aus HTML oder Javascript auf
Therat


Wie erstelle ich einen Button, der PHP aufruft?

Es ist mir egal, ob die Seite neu lädt oder die Ergebnisse sofort anzeigt;

Gut!

Notiz: Wenn Sie die Seite nicht aktualisieren möchten, siehe “Ok … aber wie benutze ich Ajax trotzdem?” unter.

Ich möchte nur, dass eine Schaltfläche auf meiner Website eine PHP-Datei ausführt.

Dies kann mit einem Formular mit einer einzigen Schaltfläche erfolgen:

<form action="">
  <input type="submit" value="my button"/>
</form>

Das ist es.

Ja schon. Beachten Sie auch, dass es Fälle gibt, in denen Ajax wirklich der richtige Weg ist.

Das hängt davon ab, was Sie wollen. Im Allgemeinen benötigen Sie Ajax nur, wenn Sie ein erneutes Laden der Seite vermeiden möchten. Trotzdem hast du gesagt, dass dir das egal ist.


Warum kann ich PHP nicht direkt aus JavaScript aufrufen?

Wenn ich den Code problemlos in HTML schreiben kann, warum kann ich dann nicht einfach auf die Datei darin verweisen oder einen einfachen Aufruf in Javascript durchführen?

Denn der PHP-Code ist nicht in der HTML just fine. Das ist eine Illusion, die durch die Funktionsweise der meisten serverseitigen Skriptsprachen (einschließlich PHP, JSP und ASP) entsteht. Dieser Code existiert nur auf dem Server und ist vom Client (dem Browser) ohne einen Remote-Aufruf nicht erreichbar.

Sie können dies nachweisen, wenn Sie Ihren Browser auffordern, den Quellcode der Seite anzuzeigen. Dort sehen Sie den PHP-Code nicht, das liegt daran, dass der PHP-Code nicht an den Client gesendet wird und daher nicht vom Client ausgeführt werden kann. Aus diesem Grund müssen Sie einen Remote-Aufruf durchführen, damit der Client die Ausführung von PHP-Code auslösen kann.

Wenn Sie kein Formular verwenden (wie oben gezeigt), können Sie diesen Remote-Aufruf von JavaScript aus mit einem kleinen Ding namens ausführen Ajax. Sie sollten auch überlegen, ob das, was Sie in PHP tun möchten, direkt in JavaScript ausgeführt werden kann.


Wie man anruft Ein weiterer PHP-Datei?

Verwenden Sie ein Formular, um den Anruf zu tätigen. Sie können es haben, um den Benutzer zu einer bestimmten Datei zu leiten:

<form action="myphpfile.php">
  <input type="submit" value="click on me!">
</form>

Der Benutzer landet auf der Seite myphpfile.php. Damit es für die aktuelle Seite funktioniert, setzen Sie action auf eine leere Zeichenfolge (was ich in dem Beispiel getan habe, das ich Ihnen früh gegeben habe).

Ich möchte es nur mit einer PHP-Datei verknüpfen, die den permanenten Blog-Beitrag auf dem Server erstellt, sodass der Beitrag immer noch vorhanden ist, wenn ich die Seite neu lade.

Wenn Sie eine Operation auf dem Server durchführen möchten, sollten Sie dafür sorgen, dass Ihr Formular die Felder enthält, die Sie benötigen (auch wenn type="hidden" und verwenden POST):

<form action="" method="POST">
  <input type="text" value="default value, you can edit it" name="myfield">
  <input type="submit" value = "post">
</form>

Was muss ich darüber wissen, um eine PHP-Datei aufzurufen, die auf Knopfdruck eine Textdatei erstellt?

sehen: Wie man in PHP in eine Datei schreibt.


Wie erhalten Sie die Daten vom POST auf dem Server?

Ich bin froh, dass du fragst … Da du ein bist neugeb Anfänger, ich gebe Ihnen eine kleine Vorlage, der Sie folgen können:

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        //Ok we got a POST, probably from a FORM, read from $_POST.
        var_dump($_PSOT); //Use this to see what info we got!
    }
    else
    {
       //You could assume you got a GET
       var_dump($_GET); //Use this to see what info we got!
    }
 ?>
 <!DOCTYPE html>
 <html lang="en">
   <head>
     <meta char-set="utf-8">
     <title>Page title</title>
   </head>
   <body>
     <form action="" method="POST">
       <input type="text" value="default value, you can edit it" name="myfield">
       <input type="submit" value = "post">
     </form>
   </body>
 </html>

Notiz: kannst du entfernen var_dumpes dient nur zu Debugging-Zwecken.


Wie mache ich…

Ich kenne die nächste Phase, Sie werden fragen, wie Sie:

  1. Wie übergibt man Variablen von einer PHP-Datei an eine andere?
  2. Wie kann ich mich an den Benutzer erinnern / mich anmelden?
  3. Wie vermeide ich diese lästige Meldung, die erscheint, wenn Sie die Seite neu laden?

Darauf gibt es eine einzige Antwort: Sitzungen.

Ich gebe eine umfangreichere Vorlage für Post-Redirect-Get

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        var_dump($_PSOT);
        //Do stuff...
        //Write results to session
        session_start();
        $_SESSION['stuff'] = $something;
        //You can store stuff such as the user ID, so you can remeember him.
        //redirect:
        header('Location: ', true, 303);
        //The redirection will cause the browser to request with GET
        //The results of the operation are in the session variable
        //It has empty location because we are redirecting to the same page
        //Otherwise use `header('Location: anotherpage.php', true, 303);`
        exit();
    }
    else
    {
        //You could assume you got a GET
        var_dump($_GET); //Use this to see what info we got!
        //Get stuff from session
        session_start();
        if (array_key_exists('stuff', $_SESSION))
        {
           $something = $_SESSION['stuff'];
           //we got stuff
           //later use present the results of the operation to the user.
        }
        //clear stuff from session:
        unset($_SESSION['stuff']);
        //set headers
        header('Content-Type: text/html; charset=utf-8');
        //This header is telling the browser what are we sending.
        //And it says we are sending HTML in UTF-8 encoding
    }
 ?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta char-set="utf-8">
    <title>Page title</title>
  </head>
  <body>
    <?php if (isset($something)){ echo '<span>'.$something.'</span>'}?>;
    <form action="" method="POST">
      <input type="text" value="default value, you can edit it" name="myfield">
      <input type="submit" value = "post">
    </form>
  </body>
</html>

Bitte suchen Sie auf php.net nach Funktionsaufrufen, die Sie nicht kennen. Außerdem erhalten Sie – falls Sie es noch nicht getan haben – ein gutes Tutorial zu HTML5.

Verwenden Sie außerdem UTF-8 weil UTF-8!


Anmerkungen:

Ich erstelle eine einfache Blog-Site für mich selbst und habe den Code für die Site und das Javascript, das den von mir geschriebenen Beitrag in einem Textbereich aufnehmen und sofort anzeigen kann.

Verwenden Sie ein CMS (Codepress, Joomla, Drupal… etc)? Das macht einige Einschränkungen, wie Sie Dinge tun müssen.

Wenn Sie ein Framework verwenden, sollten Sie sich auch dessen Dokumentation ansehen oder in seinem Forum/Mailingliste/Diskussionsseite/Kontakt nachfragen oder versuchen, die Autoren zu fragen.


Ok … aber wie benutze ich Ajax trotzdem?

Nun … Ajax wird durch einige JavaScript-Bibliotheken vereinfacht. Da Sie ein Anfänger sind, werde ich empfehlen jQuery.

Lassen Sie uns also etwas über Ajax mit jQuery an den Server senden, das ich verwenden werde $.post anstatt $.ajax für dieses Beispiel.

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
        var_dump($_PSOT);
        header('Location: ', true, 303);
        exit();
    }
    else
    {
        var_dump($_GET);
        header('Content-Type: text/html; charset=utf-8');
    }
 ?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta char-set="utf-8">
    <title>Page title</title>
    <script>
        function ajaxmagic()
        {
            $.post(                             //call the server
                "test.php",                     //At this url
                {
                    field: "value",
                    name: "John"
                }                               //And send this data to it
            ).done(                             //And when it's done
                function(data)
                {
                    $('#fromAjax').html(data);  //Update here with the response
                }
            );
        }
    </script>
  </head>
  <body>
    <input type="button" value = "use ajax", onclick="ajaxmagic()">
    <span id="fromAjax"></span>
  </body>
</html>

Der obige Code sendet eine POST-Anfrage an die Seite test.php.

Notiz: Sie können mischen sessions mit ajax und Zeug, wenn Sie wollen.


Wie mache ich…

  1. Wie verbinde ich mich mit der Datenbank?
  2. Wie verhindere ich die SQL-Injection?
  3. Warum sollte ich keine Mysql_*-Funktionen verwenden?

… für diese oder andere stellen Sie bitte weitere Fragen. Das ist zu viel für diesen.

  • Ihre Antwort sollte nach StackTutorial verschoben werden: D

    Benutzer1636522

    18. Dezember 2013 um 7:14 Uhr

Ich möchte nur, dass eine Schaltfläche auf meiner Website eine PHP-Datei ausführt

<form action="https://stackoverflow.com/questions/20637944/my.php" method="post">
    <input type="submit">
</form>

Im Allgemeinen würden Sie jedoch nur einen Link verwenden, es sei denn, Sie senden neue Daten zur Speicherung an den Server.

<a href="https://stackoverflow.com/questions/20637944/my.php">run php</a>

(Obwohl Sie Linktext verwenden sollten, der beschreibt, was aus der Sicht des Benutzers passiert, nicht der Server)


Ich erstelle eine einfache Blog-Site für mich selbst und habe den Code für die Site und das Javascript, das den von mir geschriebenen Beitrag in einem Textbereich aufnehmen und sofort anzeigen kann. Ich möchte es nur mit einer PHP-Datei verknüpfen, die den permanenten Blog-Beitrag auf dem Server erstellt, sodass der Beitrag immer noch vorhanden ist, wenn ich die Seite neu lade.

Das ist Trickser.

Zuerst müssen Sie ein Formular und POST verwenden (da Sie zu speichernde Daten senden).

Dann müssen Sie die Daten irgendwo speichern. Dies geschieht in der Regel über eine Datenbank. Informieren Sie sich über die PDO-Bibliothek für PHP. Dies ist die Standardmethode für die Interaktion mit Datenbanken.

Dann müssen Sie die Daten wieder herausziehen. Der einfachste Ansatz besteht hier darin, mithilfe des Abfragestrings den Primärschlüssel für die Datenbankzeile mit dem anzuzeigenden Eintrag zu übergeben.

<a href="https://stackoverflow.com/questions/20637944/showBlogEntry.php?entry_id=123">...</a>

Informieren Sie sich auch über SQL-Injection und XSS.

Wie Sie bereits in Ihrer Frage gesagt haben, haben Sie mehr als eine Option. Ein sehr einfacher Ansatz wäre die Verwendung des Tags, das auf Ihre PHP-Datei im Methodenattribut verweist. Doch so esoterisch es auch klingen mag, AJAX ist ein umfassenderer Ansatz. Wenn man bedenkt, dass ein AJAX-Aufruf (in Kombination mit jQuery) so einfach sein kann wie:

$.post("yourfile.php", {data : "This can be as long as you want"});

Und Sie erhalten eine flexiblere Lösung, zum Beispiel das Auslösen einer Funktion, nachdem die Serveranfrage abgeschlossen ist. Hoffe das hilft.

Sie müssen nur die Formulardaten an die Funktion zum Einfügen der PHP-Datei senden, siehe unten 🙂

class DbConnect
{
// Database login vars
private $dbHostname="";
private $dbDatabase="";
private $dbUsername="";
private $dbPassword = '';
public $db = null;

public function connect()
{

    try
    {
        $this->db = new PDO("mysql:host=".$this->dbHostname.";dbname=".$this->dbDatabase, $this->dbUsername, $this->dbPassword);
        $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e)
    {
        echo "It seems there was an error.  Please refresh your browser and try again. ".$e->getMessage();
    }
}

public function store($email)
{
    $stm = $this->db->prepare('INSERT INTO subscribers (email) VALUES ?');
    $stm->bindValue(1, $email);

    return $stm->execute();
}
}

995940cookie-checkSo rufen Sie eine PHP-Datei aus HTML oder Javascript auf [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy