Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка формы Ajax
 
 автор: kapitalist   (14.09.2012 в 13:45)   письмо автору
 
 

Привет. Написал такой код:


<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>

  Ответить  
 
 автор: confirm   (14.09.2012 в 14:10)   письмо автору
 
   для: kapitalist   (14.09.2012 в 13:45)
 

Ваш код отношения к РНР никакого не имеет, задавайте такие вопросы в разделе JS, иначе, возможно, и не получите здесь ответа.

Когда вы отправляете форму, то происходит ее отправка, то есть переход по адресу указанному в атрибуте action формы, и все что вы там делаете по щелчку кнопки отправки уже ничего не значит.
Чтобы отправлять форму методом ajax, необходимо отменять отправку самой формы - возвращать false. Либо не отправлять форму кнопкой отправки, а обрабатывать пассивный в данном случае элемент, а форму отправлять методом submit().

  Ответить  
 
 автор: Rolex   (23.09.2012 в 19:21)   письмо автору
 
   для: 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>



И остается следить за путями к файлам-обработчикам )))

  Ответить  
 
 автор: confirm   (23.09.2012 в 19:27)   письмо автору
 
   для: Rolex   (23.09.2012 в 19:21)
 

Вы уверены в своем Ajax?

  Ответить  
 
 автор: Rolex   (23.09.2012 в 20:54)   письмо автору
 
   для: confirm   (23.09.2012 в 19:27)
 

Честно говоря, в ajax не силен. Только начал изучать технологию :)

  Ответить  
 
 автор: confirm   (23.09.2012 в 21:19)   письмо автору
 
   для: Rolex   (23.09.2012 в 20:54)
 

Ну а зачем тогда пишите, да еще с ошибкой, о которой говорилось выше?

  Ответить  
 
 автор: Rolex   (23.09.2012 в 21:33)   письмо автору
 
   для: confirm   (23.09.2012 в 21:19)
 

А как правильно? С удовольствием учту свои ошибки дабы их не повторять :)

  Ответить  
 
 автор: confirm   (23.09.2012 в 21:37)   письмо автору
 
   для: Rolex   (23.09.2012 в 21:33)
 

Правильно запрещать реальную отправку формы, о чем выше уже сказано, читайте.

  Ответить  
 
 автор: Rolex   (23.09.2012 в 21:44)   письмо автору
 
   для: confirm   (23.09.2012 в 21:37)
 

>Правильно запрещать реальную отправку формы, о чем выше уже сказано, читайте.

Да будет так.

  Ответить  
 
 автор: mihdan   (25.09.2012 в 16:05)   письмо автору
 
   для: kapitalist   (14.09.2012 в 13:45)
 

Раз уж вы используете jQuery - попробуйте jQuery Form Plugin

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования