2013-08-14 4 views
0

Я ноб в ajax, но я думаю, что моя проблема довольно проста. После того, как я отправлю свою форму, я хотел бы вернуть серверное эхо мне. Вот мой текущий код, который не работает. Я довольно уверен, что проблема связана с моим ajax, потому что я знаю, что мои значения помещаются в dataString.получить ответ после запроса ajax

HTML

<form method="POST" onSubmit="new_user(this);" > 
<input type="submit" value="signed" name="astatus" /> 
<input type="hidden" value="FaKEIdkEy" name="mark_attend" /> 
</form> 

Javascript

function new_user(form){ 
    var url = "attendance.php"; 

    var dataString = "status="+form.astatus.value; 
    dataString = dataString+"&id="+form.mark_attend.value; 

    $.ajax({ 
type: "POST", 
url: url, 
data: dataString, 
success: function(data) { 
alert(data); 
} 
}); 
} 

PHP (attendance.php)

if(!empty($_POST)) 
{ 
echo "response"; 
} 

Любые идеи о том, как исправить?

+0

Убедитесь, что вы проверить на провал, как хорошо! 'ошибка: функция (jqXHR, textStatus, errorThrown) { console.error ( "произошла следующая ошибка:" + textStatus, errorThrown ); }); ' –

+0

Я добавил это, и журнал показывает, что произошла ошибка, но он не говорит мне, какой тип или почему: ** Произошла следующая ошибка: ошибка (пустая строка) ** – dmkumar

ответ

3

В конце функции вы должны добавить return false;, чтобы предотвратить отправку формы.

function new_user(form) { 
    var url = "attendance.php"; 

    var dataString = "status="+form.astatus.value+"&id="+form.mark_attend.value; 

    $.ajax({ 
     type: "POST", 
     url: url, 
     data: dataString, 
     success: function(data) { 
      alert(data); 
     } 
    }); 

    return false; 
} 
+0

Я добавил, что в, но ничего не изменилось, я до сих пор не получаю предупреждения с ответом сервера. – dmkumar

+0

Ничего, я изменил заголовок формы на 'onSubmit =" return new_user (form); "Спасибо большое! – dmkumar

0
$.ajax({ 
    type: "POST", 
    url: url, 
    data: dataString, 
    success: function(data) { 
     console.log(data); 
    } 
}); 

Отображает ли консоль «ответ»?

0
You are calling ajax at on submit , so when ajax run after that page is reload so data is vanished. 
<form method="POST" > 
<input type="button" value="signed" name="astatus" onclick="new_user()" /> 
<input type="hidden" value="FaKEIdkEy" name="mark_attend" id="mark_attend"/> 
</form> 

and get the value with jquery 
var fakeidkey=$_('#mark_attend').val(); 
and then concat it with your varaible . 
Смежные вопросы