簡體   English   中英

如何使用AJAX調用PHP函數?

[英]How do I call a PHP function using AJAX?

我正在使用XAMPP在localhost上運行我的服務器,我想調用一個Javascript函數,它將一些數據從瀏覽器發送到PHP腳本

按下我的html頁面上的a按鈕時會調用JS函數:

function send_verification_code(){
    var xhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
    xhttp.open('GET','database.php?email='+email_address)
    xhttp.send()
}

所以我想在$_GET數組中添加一個鍵值對email=>email_address ,其中email_address是一個字符串,在上面的函數中。

在上面的函數執行之后,我想立即調用另一個函數,一個PHP函數,通過調用add_email_to_be_verified將該數據添加到我服務器上的SQL數據庫(該函數屬於我發送數據的PHP腳本):

database.php中:

<?php
     $dbhost = "localhost";
     $dbuser = "root";
     $dbpass = "";
     $db = "example";
     $conn;

     function add_email_to_be_verified(){
        connect();
         $sql = 'insert into emailstobeverified values(';
         $sql .= $_GET['email'];
         $sql .= ',';
         $sql .= generate_verification_code();
         $sql .= ',';
         $sql .= date("Y-m-d H:i:s");
         $sql .= ');';
         query($sql);
         disconnect();

     }
     function generate_verification_code(){ //generates a random 6-digit verification code
        $code = mt_rand(0,999999);
        $padded_code = sprintf('%06d', $code);
        return $padded_code;
     }
     function connect(){
        $conn = new mysqli($dbhost, $dbuser, $dbpass,$db) or die("Connect failed: %s\n". $conn -> error);
     }
     function query(sql){
        $conn->query($sql);
     }
     function disconnect(){
        $conn -> close();
     }
?>

如何使用AJAX調用php函數?

您可以在database.php頁面上檢測到get emaiAddress時調用該函數。 例如:

if(isset($_GET['email'])){
    add_email_to_be_verified($_GET['email']);
}

我還會修改你的函數以將電子郵件作為參數,但你也可以讓該函數從get中查找電子郵件。

以下是使用email參數的函數示例:

function add_email_to_be_verified($email){

     connect();
     $sql = 'insert into emailstobeverified values(';
     $sql .= $email;
     $sql .= ',';
     $sql .= generate_verification_code();
     $sql .= ',';
     $sql .= date("Y-m-d H:i:s");
     $sql .= ');';
     query($sql);
     disconnect();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM