2017-10-04 38 views
0

私はsmsを送信するために使用されるフォームを持っています。これはsms.phpページへの送信時にデータを送信し、そのプロセスを実行しています。今私はsms.phpページに移動せずにフォームでデータを提出する必要があります。私はそれを行っているが、sms.phpにリダイレクトするajaxメソッドを使用して、フォームページ自体で実行する必要があります。私はそれを行う必要があり、同じページと得られたjsonレスポンスをデータベースに保存する必要があります。Ajaxフォームから送信されたレスポンスデータを送信しますか?

どうすればいいですか?事前に感謝してください。送信するSMSに使用

フォーム:

<form role="form" method="POST" action="sms.php"> 
     <div class="form-group row"> 
      <label class="col-sm-4 form-control-label">Select Date Range<span class="text-danger">*</span> 
      </label> 
      <div class="col-sm-7"> 
       <div class="input-daterange input-group" id="date-range"> 
        <input type="text" class="form-control" name="start" /> 
        <span class="input-group-addon bg-custom b-0">to</span> 
        <input type="text" class="form-control" name="end" /> 
       </div> 
      </div> 
     </div> 
     <div class="form-group row"> 
      <label class="col-sm-4 form-control-label">Select Brand<span class="text-danger">*</span> 
      </label> 
      <div class="col-sm-7"> 
       <select class="form-control" name="brand" id="brand" required> 
        <option value="">Select Brand</option> 
        <option value="3">test1</option> 
        <option value="2">test2</option> 
        <option value="1">test3</option> 
       </select> 
      </div> 

     </div> 

     <div class="form-group row"> 
      <div class="col-sm-8 col-sm-offset-4"> 
       <input type="submit" class="btn btn-primary btn-sm" value="Submit"> 
      </div> 
     </div> 
    </form> 

アヤックスデータ

$('sms').on('submit', function (e) { 

      e.preventDefault(); 

      $.ajax({ 
      type: 'post', 
      url: 'sms.php', 
      data: $('form').serialize(), 
      success: function() { 
       alert('form was submitted'); 
      } 
      }); 

     }); 

レスポンスが得られ

<?php 

    if(isset($_POST['submit'])){ 
     $senderid =$_POST['senderid']; 
     // echo $senderid; 
     $message = rawurlencode($_POST['message']); 
     $mobile = isset($_POST['mobilenumber']) ? $_POST['mobilenumber'] : ''; 
     sendSMS($mobile,$message,$senderid); 
    } 

function sendSMS($mobile,$message,$senderid){ 

$user = "asdhaskbdjasdjbfjk"; 
$url = 'http://login.smsgatewayhub.com/api/mt/SendSMS?APIKey='.$user.'&senderid='.$senderid.'&channel=2&DCS=0&flashsms=0&number='.$mobile.'&text='.$message.'&route=16;'; 

$ch=curl_init($url); 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch,CURLOPT_POST,1); 
curl_setopt($ch,CURLOPT_POSTFIELDS,""); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,2); 
$data = curl_exec($ch); 
print($data); /* result of API call*/ 

} 

?> 

sms.phpを送信するために使用しました

{"ErrorCode":"000","ErrorMessage":"Success","JobId":"112591825","MessageData":[{"Number":"","MessageId":"mU9WfV6hLEyNAQQI63BzNw"}]} 
+1

'$( 'sms')は何を選択するのですか?そのタグ名の要素はありません。 – CBroe

答えて

0

jquery code $('sms')のセレクタが間違っています。そして、ページの変更を停止するために、あなたはclickイベントを使用し、実際にこのようにフォームを送信を停止する必要があります。

$('.btn-sm').on('click', function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: 'post', 
     url: 'sms.php', 
     data: $('form').serialize(), 
     success: function() { 
      alert('form was submitted'); 
     } 
    }); 
}); 

あなたは、私がsubmitボタンのclickイベントを使用している、という上記のコードスニペットから見ることができる、とまた、最初の行にe.preventDefault()と書かれているので、フォームは送信を停止しますが、単にajax呼び出しを開始します。 SMSが送信され、あなたは同じページにいます。リダイレクトはありません。

+0

私は@Sairam Duggiを願って、これはあなたの問題を解決するでしょう。 –

0

はあなたのコードでは、私はあなたのページにアクションを追加したことがわかった:あなたはスクリプトタグ内に含まのでとしてフォームから

<form role="form" method="POST" action="sms.php"> 

削除そのアクションポスト

関連する問題