2016-06-15 22 views
0

JavaScriptファイルからPHPファイルにデータを送信して、PHPサーバー側で行う必要があるようにするにはどうすればよいですか。私はSMSを送ろうとしています。私の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

Iveはいつもvar abc = '<?php $ var =' xyz 'を作成して運が良かった。 ?> '; – Kray

+0

@Leviしかしこれは1つの変数だけでなく、コード全体です。 – learningbyexample

+0

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

答えて

0

あなたはフロントエンドにjQueryのに引っ張った場合、あなたはあなたのためにそのPHPの機能を実行するためのAJAXリクエストを送信することができます。今、あなたがしなければならないだろう彼らがこのANを呼び出し、に送信するAJAX要求のためのファイルを作成している

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

:それはこの(ストレートの.jsコードでそのsendSMSセクションに挿入されたようになります"end point"私の例では、このファイルのパスを/ send/smsに設定していますので、電子メールやSMSなどを送ることができる "send"というディレクトリがあります。

このファイルにAJAXリクエストを送信すると、PHP関数が実行されます。フェッチするには、次のように入力します。与えられたデータは、$_POST['author']$_POST['text']など

+0

私はsendSMS()を試しました。スイッチケースの内側で、次に.js内の機能で... function sendSMS(){ $ .ajax(){ url: "/ send/sms"、 タイプ: "POST"、 データ: 著者:params.author、 テキスト:params.text、 時間:params.time、 へ:params.to、 }} }しかし、あなたが開く場合、それはあなたが使用しているものは何でもデベロッパーツール – learningbyexample

+0

を動作しません。ブラウザでは、/ send/smsに送信されているリクエストを確認できますか? – dargue3

+0

それは空白になり、データベースからpreviosデータを取得しません – learningbyexample

関連する問題