當按下按鈕時,包含原始窗體的div被替換爲新的窗體(或任何其他事物)時,是否存在任何jQuery/AJAX函數形成?基本上,不需要重新加載頁面的多部分表單。使用jQuery/AJAX重新填充新窗體/內容的div
我可以使用類似的東西嗎?
$('form#myForm').submit(function(event) {
event.preventDefault();
$.ajax({
type: '',
url: '',
data: $(this).serialize(),
success: function(response) {
$('#divName').html(response);
//somehow repopulate div with a second form?
}
})
return false;
});
我已經使用過這個功能將項目添加到列表中,但我從來沒有用它來完全重新填充不同的內容。我怎樣才能把它指向第二種形式?
編輯 - 我得到它的工作,但只有當我寫'#form2'的替換。我提醒了答覆,我得到了{"formToShow":"show2"}
。我嘗試做response.formToShow但它是未定義的。
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
</head>
<div id="divName">
<form method="POST" action = "#" id="form1">
<input type="textbox" name="textbox1" value="1"/>
<input type="submit" name="submit1"/>
</form>
<form method="POST" action = "#" id="form2" style="display: none">
<input type="textbox" name="textbox2" value="2"/>
<input type="submit" name="submit2"/>
</form>
</div>
<script>
$('form#form1').submit(function(event) {
event.preventDefault();
$.ajax({
type: 'JSON',
url: 'receiving.php',
data: $(this).serialize(),
success: function(response) {
$('#form1').hide(); //hides
//$('#form2').show(); //this will show
$(response.formToShow).show(); //this does not display form 2
}
})
return false;
});
</script>
這裏是receiving.php。當我瀏覽這個頁面{"formToShow":"show2"}
顯示
<?php
echo json_encode(array("formToShow" => "#form2"));
?>
看起來你有正確的想法... $( '#divName')HTML(putformhere)。 –
@DavidHoude我是否參考了表單的ID,你有什麼「putformhere」? – user1104854
你會真的把你的表單代碼放在那裏,假設這是舊窗體的div。當你使用jQuery.html(字符串)時,它會用新內容替換該div中的任何內容。在這裏,我假設你的ajax響應是另一種形式(由服務器響應你的第一個表單發送) –