簡體   English   中英

如何從.js文件運行.php函數文件

[英]How do I run a .php function file from a .js file

如何將數據從JavaScript文件發送到PHP文件,以使其執行PHP服務器端所需的操作。 我想發送一條短信,但是我的JavaScript正在讀取所有即將到來的數據,所以剩下的就是我的PHP激活並以SMS格式發送了數據,而這已經用我的PHP文件完成了。 我只需要讓他們連接即可發送。

PHP可以處理函數嗎? 這就是我想通過將數據從我的.js文件發送到PHP中的函數來執行的操作。 如果沒有,我該如何通過郵寄方式發送?

.js文件:

render : function(template,params){

    var arr = [];
    switch(template){

        case 'smsLine':
            arr = [
                '<div class=" sms-',params.id,' rounded"><span class="gravatar"><img src="',params.gravatar,
                '" width="23" height="23" onload="this.style.visibility=\'visible\'" />',
                '</span><span class="author">',params.author,
                ':</span><span class="text">',params.text,
                ':</span><span class="text">',params.to,
                '</span><span class="time">',params.time,'</span></div>'];

                ///////////////////////////////HERE/////////////////////////////////
                //this is where I want to use a function that is in a php file
                sendSMS(params.author, params.text, params.time, params.to);

                ///////////////////////////////HERE////////////////////////////////
        break;

    }

    return arr.join('');
}

這是我要在PHP文件中使用的功能。

.php文件:

function sendSMS($from, $message, $time, $to){
    $objGsm = new COM("AxSms.Gsm", NULL, CP_UTF8 );
    $objGsm->LogFile = sys_get_temp_dir()."Gsm.log"; 
    //Windows default: 'C:\Windows\Temp\Gsm.log'

    //Form submitted

    $obj;
    $strMessageReference;
    $objSmsMessage   = new COM("AxSms.Message",    NULL, CP_UTF8 );
    $objSmsConstants = new COM("AxSms.Constants" , NULL, CP_UTF8 );

    $strName = 'Modem';
    $strPincode = '';
    $strRecipient = '$number';
    $iDeviceSpeed = '0';

    $objGsm->Clear();
    $objGsm->LogFile = '';
    $objGsm->Open($strName, $strPincode, $iDeviceSpeed);

    if ($objGsm->LastError != 0){
        $strResult = $objGsm->LastError . ": " . $objGsm->GetErrorDescription($objGsm->LastError);
        $objGsm->Close();
    }
    else{
        //Message Settings
        $objSmsMessage->Clear();
        $objSmsMessage->ToAddress = $to;
        $objSmsMessage->Body = $message;

        $objSmsMessage->DataCoding = $objSmsConstants->DATACODING_UNICODE;

        //Send the message !
        $obj = $objSmsMessage;
        $objGsm->SendSms($obj, $objSmsConstants->MULTIPART_ACCEPT, 0);
        $objSmsMessage = $obj;

        $strResult = $objGsm->LastError . ": " . $objGsm->GetErrorDescription($objGsm->LastError);

        $objGsm->Close();
    }
}

如果您將jQuery插入前端,則可以發送AJAX請求來為您執行該PHP函數。 它看起來像這樣(直接插入.js代碼中的sendSMS部分:

$.ajax() {
    url: "/send/sms",
    type: "POST",
    data: {
        author: params.author, 
        text: params.text,
        time: params.time,
        to: params.to,
    }
}

現在,您需要做的是創建要發送給AJAX請求的文件,他們將其稱為“端點”。 在我的示例中,我將此文件的路徑設置為/ send / sms,因此,也許您有一個名為“ send”的目錄,您可以在其中發送電子郵件或SMS等。對於每種方法,您都有一個PHP文件包含它的邏輯。 因此,對於此示例,請在YOUR_ROOT_DIRECTORY / send中創建一個sms.php文件。

將AJAX請求發送到該文件后,將執行PHP函數。 要獲取給定的數據,請使用$_POST['author']$_POST['text']等。

暫無
暫無

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

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