2016-06-15 82 views
0

如何將JavaScript文件中的數據發送到PHP文件,以便它在PHP服務器端執行所需的操作。我想發送一條短信,而我的JavaScript正在讀取即將到來的所有數據,所以剩下的就是我的PHP使用我的PHP文件已經完成的SMS激活併發送數據。我只是需要讓他們連接才能發送。如何從.js文件運行.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(); 
    } 
} 
+0

我一直有創建一個var abc ='<?php $ var ='xyz'; ?>'; – Kray

+0

@Levi但是這是一個完整的代碼,不只是一個變量 – learningbyexample

+0

var abc ='<?php $ var ='inservert code here'?>'; ? – Kray

回答

0

如果你在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請求被髮送到,他們把這叫做「end point」在我的示例中,我將此文件的路徑設置爲/ send/sms,因此您可能有一個名爲「send」的目錄,您可以在其中發送電子郵件或SMS等。對於這些方法中的每一種將有一個PHP文件包含它的邏輯,所以對於這個例子,在YOUR_ROOT_DIRECTORY /發送裏面創建一個sms.php文件

一旦你發送了一個AJAX請求到那個文件,PHP函數就會被執行。給定的數據,使用$_POST['author']$_POST['text']

+0

我試了sendSMS(); (){ url:「/ send/sms」, type:「POST」, data:{ 作者:params.author, 文字:params.text, 時間:params.time, 到:params.to, }} } 但如果你打開你正在使用任何devtools它不工作 – learningbyexample

+0

瀏覽器,你能看到發送到/ send/sms的請求嗎? – dargue3

+0

它變得空白,沒有從數據庫中得到previos數據 – learningbyexample