|
|
|
| Привет. Написал такой код:
<script type='text/javascript'>
$(document).ready(function(){
$("#send").click(function(){
var name = $("#name").val();
var text = $("#text").val();
$.post("server.php", { name: name, text: text}, function(data) {
$("#comments").append(data);
});
$('#name').attr('value','');
$('#text').attr('value','');
});
});
</script>
<div id="comments"></div>
<input name="name" id='name' type="text"><br>
<textarea id="text"></textarea><br>
<button id='send'>send</button>
|
Код работает. Отправляет данные, выводит нужные данные на страницу, все делает без перезагрузки. Но я хочу сделать не просто input и button, а нормальную форму. Но тогда данные не отправляются.
Подскажите, пожалуйста как сделать, чтобы код работал с формой такого вида:
<form id='form' action='' method='post'>
<input name="name" id='name' type="text"><br>
<textarea id="text"></textarea><br>
<input id='submit' type="submit">
</form>
|
| |
|
|
|
|
|
|
|
для: kapitalist
(14.09.2012 в 13:45)
| | Ваш код отношения к РНР никакого не имеет, задавайте такие вопросы в разделе JS, иначе, возможно, и не получите здесь ответа.
Когда вы отправляете форму, то происходит ее отправка, то есть переход по адресу указанному в атрибуте action формы, и все что вы там делаете по щелчку кнопки отправки уже ничего не значит.
Чтобы отправлять форму методом ajax, необходимо отменять отправку самой формы - возвращать false. Либо не отправлять форму кнопкой отправки, а обрабатывать пассивный в данном случае элемент, а форму отправлять методом submit(). | |
|
|
|
|
|
|
|
для: kapitalist
(14.09.2012 в 13:45)
| |
<script type='text/javascript'>
function sendData(){
//$('#inform_message').remove();
$.post("server.php",{
name: $("#name").val(),
text: $("#text").val()
},
onAjaxSuccess
);
}
function onAjaxSuccess(data){
// Здесь мы получаем данные, отправленные сервером и выводим их на экран.
//или производим с ними действия в php-скрипте
alert(data),
$(data).appendTo('#inform_message'),
}
</script>
<form id='form' action='' method='post' onsubmit="sendData()">
<input name="name" id='name' type="text"><br>
<textarea id="text"></textarea><br>
<input id='submit' type="submit">
</form>
|
И остается следить за путями к файлам-обработчикам ))) | |
|
|
|
|
|
|
|
для: Rolex
(23.09.2012 в 19:21)
| | Вы уверены в своем Ajax? | |
|
|
|
|
|
|
|
для: confirm
(23.09.2012 в 19:27)
| | Честно говоря, в ajax не силен. Только начал изучать технологию :) | |
|
|
|
|
|
|
|
для: Rolex
(23.09.2012 в 20:54)
| | Ну а зачем тогда пишите, да еще с ошибкой, о которой говорилось выше? | |
|
|
|
|
|
|
|
для: confirm
(23.09.2012 в 21:19)
| | А как правильно? С удовольствием учту свои ошибки дабы их не повторять :) | |
|
|
|
|
|
|
|
для: Rolex
(23.09.2012 в 21:33)
| | Правильно запрещать реальную отправку формы, о чем выше уже сказано, читайте. | |
|
|
|
|
|
|
|
для: confirm
(23.09.2012 в 21:37)
| | >Правильно запрещать реальную отправку формы, о чем выше уже сказано, читайте.
Да будет так. | |
|
|
|
|
|
|
|
для: kapitalist
(14.09.2012 в 13:45)
| | Раз уж вы используете jQuery - попробуйте jQuery Form Plugin | |
|
|
|