2013-07-08 16 views
1

У меня есть форму; Я использую jQuery для публикации этой формы, но теперь мне интересно, как я могу «перезагрузить» форму, когда я разместил ее?jQuery сбросить форму после сообщения?

Мой JQuery и PHP код:

<?php 
chdir('../'); 
    include("_mysql.php"); 
    include("_settings.php"); 
    include("_functions.php"); 
chdir('admin'); 

if (isset($_POST['rubric'])) { 
    if (empty($_POST['rubric']) && empty($_POST['content'])) { 
     echo '<div class="alert alert-error alert-box">Du måste fylla i alla fält.</div>'; 
    } 
    else { 
     $rubric = $_POST['rubric']; 
     $sql = "INSERT INTO ".PREFIX."news(`date`, `poster`) 
     VALUES('".time()."', '".$userID."')"; 
     mysql_query($sql); 
     $id = mysql_insert_id(); 
     $sql2 = "INSERT INTO ".PREFIX."news_contents(`newsID`, `headline`, `content`) 
     VALUES('".$id."', '".$rubric."', '".$_POST['content']."')"; 
     mysql_query($sql2); 
     echo '<div class="alert alert-box alert-success">Klart, nyheten postad.</div>'; 
    } 
} 
?> 

    $("#form").submit(function(event) { 
    event.preventDefault(); 
    var poster = $.post('addnews.php', $(this).serialize()); 
    poster.done(function(data) { 
     $(".result").html(data); 
    }); 
}); 

Кто-нибудь знает, как я могу это сделать? Потому что теперь, когда я публикую новую рубрику и контент, все еще есть, и я действительно не знаю, как отключить переменные.

И я действительно хочу, чтобы моя ошибка, и, если возможно, примите сообщение слева.

ответ

5

HTMLFormElements имеют reset function, так:

$("#form").submit(function(event) { 
    var form = this;    // <=== Remember the form element 

    event.preventDefault(); 
    var poster = $.post('addnews.php', $(this).serialize()); 
    poster.done(function(data) { 
     $(".result").html(data); 
     form.reset();   // <=== Use `reset` 
    }); 
}); 
+0

Большое спасибо! :) Работала отлично, у меня есть еще один маленький вопрос, знаете ли вы, как я могу сделать, чтобы показать сообщение всего несколько секунд? – Tommy

+0

Если сообщение является тем, что вы показываете в строке '$ (". Result ") .html (data);', then: 'setTimeout (function() {$ (". Result "). Hide(); }, 3000), 'скрывает эти элементы через 3 секунды. Или поочередно, вы можете сделать их пустыми, а не скрытыми с помощью '.empty()' вместо '.hide()'. –

+1

Большое вам спасибо за помощь! :) – Tommy

0

Вы можете воспользоваться формой reset() метод как

document.getElementById("form").reset(); 

или JQuery

$('#form').find('input:text, input:password, input:file, select, textarea').val(''); 
$('#form').find('input:radio, input:checkbox').removeAttr('checked').removeAttr('selected'); 
Смежные вопросы