jQuery AJAX问题,这可能吗?

时间:2011-07-15 18:38:43

标签: jquery ajax

我知道如何使用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更新了数据库字段。

3 个答案:

答案 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)不喜欢它。