我知道如何使用jQuery $ .ajax()函数通过ajax提交表单。我的问题是,如果表单位于另一个页面上,我通过ajax加载表单本身:
$('.contentDiv').load('form.php');
我可以通过AJAX提交这个加载AJAX的表格吗?
基本上我必须在正在使用的框架的限制范围内工作。该框架仅允许呈现某些表单并在特定视图上提交。因此,我需要在页面A上显示的表单只能在页面B上呈现并且仅在页面B上提交。我可以通过ajax在页面A上加载表单,但是如果我编写代码以通过ajax将表单提交到它的原始第A页的操作(第B页)是否有效?
如果我在页面B上编写ajax代码,并通过ajax在页面A上加载ajax代码和表单,那会使它工作吗?
好的确有效。对不起,如果我让它比它更复杂。基本上我把表单的ajax代码放在页面B上,并通过load()函数在页面A上加载表单和ajax代码,当我提交表单时,它正确地从页面A更新了数据库字段。
答案 0 :(得分:1)
您只需要绑定$()。load()。
返回的表单元素的提交操作$('.contentDiv').load('form.php', function() {
$('form#newFormId').submit(function() {
var data = $(this).serialize();
$.ajax({
url: 'submithandler.php',
data: data,
success: function(data) {
//response was ok, do something
}
});
return false;
});
})
如果您需要在表单上触发提交操作,您还可以执行以下操作:
$('form#newFormId').submit();
答案 1 :(得分:0)
这是下面的简单加载和执行:
<html>
<head>
<script language="javascript" src="jquery.js"></script>
<script language="javascript">
$(document).ready(function()
{
$('.content').load("form.php");
$('#submit').live("click", function()
{
$.ajax({url: 'form.php'});
return false;
})
});
</script>
</head>
<body>
<div class="content">
</div>
</body>
</html>
但是如果你还想加载javascript,那么你需要在加载的javascript中添加head部分。
答案 2 :(得分:0)
这是你拥有的吗?
a.php只会:
<html>
<head>
... include your javascript files ...
</head>
<body>
<div class="contentDiv"></div>
</body>
$(document).ready(function() {
//some javascript stuff to make an ajax call
// to load form into contentDiv from source #1...
});
</html>
B.php
<html>
<head>
... include your javascript files ...
</head>
<body>
</body>
$(document).ready(function() {
//some javascript stuff to make an ajax call
// to load contents of page into body from **A.php** ...
});
</html>
如果是这样,那么你必须在两个页面上都包含你的javascript和CSS。它可以在某些浏览器中使用它,但其他浏览器(IE)不喜欢它。