2012-05-02 31 views
2

在表單提交我想要加載一個與MySQL表更新列表的div。我將表單變量發送到一個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

您需要防止表單使用0重定向頁面方法事件對象上:

$("#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

添加return false到底從停止提交表單。或者如果你想更優雅的使用preventDefault();方法。親自爲這樣簡單的事情,雖然我只是堅持返回虛假;

$("#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'將阻止默認值,但它也會停止事件傳播。 – Eli

+0

如果您在提供的代碼的末尾使用return false,它將工作得很好。不過你是對的,如果代碼中有更多的東西比提供的更多,這可能會導致問題。但如果它只是停止提交表單,返回false將會很好。 – Rooster

+0

我明白代碼可以正常工作,但如果有其他更高級的提交事件發生,它們將不會被正確觸發,因爲您阻止了該事件的傳播。 – Eli