[英]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.