2015-11-04 5 views
-2

Я хочу отправить sms на клик без перезагрузки и перенаправления страниц, но форма не работает без перенаправления на страницу действия. Вот мой код.Форма не отправляется без перенаправления

Страница, содержащая форму

<div class="blog"> 
<form method="post"> 
<input type="hidden" name="message" value="whatever"> 
<input type="text" name="tono" maxlength="10"> 
<input type="submit" value="SEND SMS" id="sendit"> 
</form> 
<script> 
$(document).ready(function(){ 
$("#sendit").click(function(){ 
$.ajax({ 
type: "POST", 
url: "./example.php", 
data: $(form).serialize(); 
}).done(function(response) { 
alert(response); 
}); 
return false; 
}); 
}); 
</script> 
</div> 

example.php

<?php 
error_reporting(E_ALL); 
ob_implicit_flush(true); 

include_once "class.curl.php"; 
include_once "class.sms.php"; 
include_once "cprint.php"; 

$smsapp=new sms(); 
$smsapp->setGateway('way2sms'); 
$myno='XXXXXXX'; 
$p='XXXXXXXX'; 
$tonum=$_POST['tono']; 
$mess=$_POST['message']; 

cprint("Logging in ..\n"); 
$ret=$smsapp->login($myno,$p); 

if (!$ret) { 
cprint("Error Logging In"); 
exit(1); 
} 

print("Logged in Successfully\n"); 

print("Sending SMS ..\n"); 
$ret=$smsapp->send($tonum,$mess); 

if (!$ret) { 
print("Error in sending message"); 
exit(1); 
} 

print("Message sent"); 

?> 

Это перезагружает страницу, но не представляет форму, и если я добавить атрибут действия, чтобы сформировать его перенаправляет example.php и успешно отправляет смс.

+1

use even, preventDefault() для остановки reloadig –

+0

Это не проблема, он возвращает false в обработчике. Проблема заключается в синтаксической ошибке. – taxicala

ответ

2

Я вижу, вы возвращаете ложь в обработчике, который в основном так же, как с помощью event.preventDefault(), но это не работает, потому что у вас есть ошибка синтаксиса (точка с запятой, которые не должны быть там):

$(document).ready(function() { 
    $("#sendit").click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "./example.php", 
      data: $(form).serialize() // You have ";" here, and it's causing the rest of the code to fail. 
     }).done(function (response) { 
      alert(response); 
     }); 
     return false; 
    }); 
}); 
+1

Хороший улов! Я полностью пропустил это. Идентификация кода действительно помогает здесь. –

+0

Но теперь он не работает и после исправления синтаксической ошибки. Не посылает никаких смс. Он отправляет смс, если я добавляю атрибут действия действия в форме и перенаправляет его на страницу действия. –

Смежные вопросы