2012-10-12 78 views
0

我用jQuery的Ajax調用在PHP和我得到適當的結果相同,但在結果的(響應)的HTML我有一種形式,沒有提交後點擊在提交按鈕上。我沒有得到任何相同的錯誤。 另外我想提交這個響應HTML表單而不使用Ajax。 請幫我解決這個問題。表單不提交時,點擊提交按鈕的ajax響應HTML

Ajax響應:

<form method=\"post\" id=\"clientlist\" action=\"addclients.php\"> 
    //inputs fileds... 
</form> 

AJAX調用:

var $j = jQuery.noConflict(); 
$j(document).ready(function(){ 
    $j(".linktext").click(function(){ 

    //check which link is tobe click e.g. Prev or Next 
    var link = $j(this).html(); 
    var limit = 1; 
    if(link == 'Prev'){ 
    limit = document.getElementById('text_prev').value; 
    }else if(link =='Next'){ 
    limit = document.getElementById('text_next').value; 
    } 

    $j.ajax({ 
    type: "POST", 
    data: $j("#clientlist").serialize(), 
    url: "agencyclients_ajax.php?start="+limit, 
    success: function(response) { 
     $j('#mainbody').html(response); 
    } 
    }); 
}); 
+0

也許你應該使用preventDefault()方法來阻止表單提交。如果你不想使用Ajax,比使用普通的PHP。或者我錯過了什麼? – intelis

+0

你能分享一些更多的代碼嗎?更具體地說,實際獲得新窗體和HTML之前在頁面上呈現的新AJAX調用將幫助 –

回答

0

請使用submit事件的形式。 當您點擊提交時,只需執行ajax調用,然後返回false以確保該表單未以正常方式提交。

現在您正在使用鏈接的點擊事件//not encouraged.

而jQuery的沒有衝突,使用此代碼:

(function($){ 
    $(function(){ 
     //$ can be used in this area without any conflict, provided by jQuery Docs for creating a plugin 
    }); 
})(jQuery); 
0

更改AJAX迴應:

<form method="post" id="clientlist" action="addclients.php"> 
    //inputs fileds... 
</form> 

刪除斜槓。

0

這是因爲事件處理程序在重新加載後未添加到「.linktext」中。

您可以使用JQuery On函數,以便在DOM更改時重新應用事件處理程序。

http://api.jquery.com/on/

$j(".linktext").click(function(){ 

變得

$j(".linktext").on("click", function(event){ 
+0

op提問'我想提交此響應HTML表單而不使用Ajax',所以我不認爲這是問題 – AlexP

0

下面是一個例子。用您的提交按鈕ID替換$('#submit')。

$('#submit').click(function(){ 
    $.ajax({ 
     type:'POST', 
     url: '/search.php', 
     data: $j("#clientlist").serialize(), 
     success: function(data){ 
      alert('sent'); 
     } 
    }); 
return false; 
});