Jquery Ajax使用表单数据

时间:2016-12-02 13:22:34

标签: php jquery json ajax

我有一个API集成,其中SMS服务要求我们以内容类型为json的格式发送数据。

{
  "from": "91887654681",
  "to": ["918757077777"],
  "body": "Hi this is my message using Mblox SMS REST API" 
}

我有一个带有输入文本的表单,即from,to和body。

这是我的表单提交的方式。

$("#sendSMSForm").submit(function(event){
    event.preventDefault();
    // Serialize the form data.
    var form = $('#sendSMSForm');
    var formData = $(form).serialize();
    //alert(formData);
    $.ajax({
        type: 'POST',
        dataType: 'json',
        contentType: "application/json",
        url: $(form).attr('action'),
        data: formData
    }).done(function(response) {
        // Do some UI action stuff
        alert(response);
    });
});

我不确定...应该使用什么来传递类似的格式....其中“to”是一个数组。

3 个答案:

答案 0 :(得分:3)

只需输入您的输入字段select{ display: none }数组

即可
to

答案 1 :(得分:0)

为什么不使用jQuery Form插件? http://malsup.com/jquery/form/#getting-started

您可以改为使用$ .ajaxSubmit。

答案 2 :(得分:0)

@WEBjuju的评论非常有用....为什么要在客户端进行这样的集成...这真的是一个新手和不好的做法。最后我在服务器端管理这个...使用PHP创建这样的json。以下是可以帮助某人的示例。这是一个使用cURL进行HTTP REST调用的PHP函数。

function callAPI($to, $body)
{
try{
 // I am creating an array of Whatever structure I need to pass to API
 $post_data = array('from' => ''.$this->from.'',
'to' => array(''.$to.''),
'body' => ''.$body.'');

//Set the Authorization header here... most APIs ask for this
$curl = curl_init();
$headers = array(
'Content-Type: application/json',
'Authorization: Bearer XXXXXXXXXXXXXXXXXXXXX'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

//If you have basic authorization, next 3 lines are required
$username ="venturecar15";
$password = "voaKmtWv";
curl_setopt($curl, CURLOPT_USERPWD,  $username . ":" . $password); 

//Not receommended but worked for me
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($curl, CURLOPT_URL, $this->ApiURL);
curl_setopt($curl, CURLOPT_POST, true); 
//This is how we can convert an array to json       
$test = json_encode($post_data);
curl_setopt($curl, CURLOPT_POSTFIELDS, $test);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
} catch(Exception $e) {
   return "Exception: ".$e->getCode()." ".$e->getMessage();
}

if($result === FALSE) {
    $error = curl_error($curl)." ".curl_errno($curl);
    return "Error executing curl : ".$error;
}
 curl_close($curl);
return "SMS sent successfully to ".$to.".";
}