2016-12-02 3 views
0

У меня есть интерфейс API, в котором служба SMS хочет, чтобы мы отправляли данные в этом формате с типом контента как json.JQuery Ajax передает формат массива JSON с использованием данных формы

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

У меня есть форма с входными текстами, а именно: от, от и до тела.

Это как моя форма подает.

$("#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); 
    }); 
}); 

Я не уверен ... что должно быть использовано, чтобы пройти подобный формат .... которого «к» является массивом.

+1

Если вы сделаете эту интеграцию в jQuery на стороне клиента, кто-то запустит ваш счет SMS. Обрабатывайте эту серверную часть в PHP. Почему это вообще связано с PHP? – WEBjuju

ответ

3

Просто сделать ваши поля ввода to массив

<input type="number" name="to[]" value="918757077777"/> 
<input type="number" name="to[]" value="918757077778"/> 
<input type="number" name="to[]" value="918757077779"/> 
+0

Да. Это верно. Вы можете точно ответить на этот ответ. – Perumal

+0

@ VishalKumar Попробуйте https://plugins.jquery.com/serializeJSON/ – Justinas

0

@ комментарий WEBjuju был очень полезным .... Зачем делать такие Интеграции на стороне клиента ... это действительно новичок и плохая практика. Наконец, я управляю этим на стороне сервера ... создавая такой json, используя PHP. Ниже приведен образец, который может помочь кому-то. Это функция PHP для вызова HTTP REST с использованием cURL.

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."."; 
} 
Смежные вопросы