2012-05-02 2 views
2

В форме submit Я хочу загрузить div с обновленным списком таблицы mysql. Я отправляю переменные формы в php и отправляю их в таблицу mysql. на той же странице отображаются полные данные таблицы. Я хочу загрузить данные в тег div, что и форма. Таким образом, кажется, что информация загружается над формой.Обновление страницы вместо Ajax Загрузка без

Мои Javascript

$("#formSubmit").submit(function(){ 

    var name = $("input#name").val(); 
    var comment = $("input#comment").val(); 
    var filmnumber = $("input#hidden").val(); 

    var dataString = 'name='+ name + '&comment=' + comment + '&filmnumber=' + filmnumber; 

    $.ajax({ 
     type: "POST", 
     url: "comment.php", 
     data: dataString, 
     success: function() { 
      $('#2').load('comment.php'); 
     } 
    }); 

Моя форма -

<div id="2">          
    <p>Add a Comment</p> 
    <form id="formSubmit" method="POST"> 
     <div> 
      <input type="hidden" name="hidden" id="hidden" value="2"> 
      <label for="name">Your Name</label> 
      <input type="text" name="name" id="name" /> 

      <label for="body">Comment Body</label> 
      <textarea name="comment" id="comment" cols="20" rows="5"></textarea> 

      <input type="submit" id="comment" class="button" value="Submit" /> 
    </form> 
    </div> 

Все это делает освежает страницу и не загружая информацию для Div 2: S

спасибо за вашу помощь

ответ

3

Вам необходимо, чтобы форма не перенаправляла страницу с помощьюметод на объекте события:

$("#formSubmit").submit(function(e){ // add the event object as an argument to your function 
    e.preventDefault(); // right here 

    var name = $("input#name").val(); 
    var comment = $("input#comment").val(); 
    var filmnumber = $("input#hidden").val(); 

    var dataString = 'name='+ name + '&comment=' + comment + '&filmnumber=' + filmnumber; 

    $.ajax({ 
     type: "POST", 
     url: "comment.php", 
     data: dataString, 
     success: function() { 
     $('#2').load('comment.php'); 
     } 
    }); 
}); 
+0

Спасибо за ваш ответ, я внедрил его, но он все еще не работает, есть ли какая-нибудь возможность взглянуть на эту страницу между строками 115 и линиями 153? - view-source: http: //ignitethatdesign.com/CheckFilm/test_search_comments.php. Я не знаю, поставил ли я скрипт на нужной стадии. – DIM3NSION

+0

. Вам лучше было бы придерживаться ВСЕ ваших скриптов в нижней части страницы перед закрытием '' тега. – Eli

+0

, что сценарий не должен иметь проблемы, если он был помещен непосредственно под тегом div формы, правда? – DIM3NSION

1

добавить возврат ложного конца, чтобы остановить форму от представления. или если вы хотите быть более элегантным, используйте preventDefault(); метод. лично для чего-то столь же простого, как это, хотя я просто придерживаюсь return false;

$("#formSubmit").submit(function(e){ // add the event object as an argument to your function 


var name = $("input#name").val(); 
var comment = $("input#comment").val(); 
var filmnumber = $("input#hidden").val(); 

var dataString = 'name='+ name + '&comment=' + comment + '&filmnumber=' + filmnumber; 

$.ajax({ 
    type: "POST", 
    url: "comment.php", 
    data: dataString, 
    success: function() { 
    $('#2').load('comment.php'); 
    } 
}); 
return false;//right here 

});

+0

'return false' предотвратитDefault, но также остановит распространение события. – Eli

+0

, если вы используете return false в конце предоставленного кода, он будет работать нормально. однако вы правы, если в коде есть больше, чем указано, это может вызвать проблемы. но если его просто прекратить отправку формы, вернуть false будет хорошо. – Rooster

+0

Я понимаю, что код будет работать нормально, но если есть другие события отправки выше, они не будут запускаться правильно, потому что вы остановили событие от распространения. – Eli

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