如何在表单提交时使用.replace更新DIV

时间:2009-08-28 18:48:16

标签: php ajax forms

有些人可以建议如何在成功的Ajax表单提交后包含一个php文件来更新div中的内容吗?

这有效:

jQuery(form).ajaxSubmit({
  success: function() {
$('#ajaxRenew').load('script.php');  
}
});

但是我的script.php需要从它包含的页面中获取标题等(它通常可以正常工作),而使用.load它不会得到它们, 发出警告。

我读过在这种情况下会使用Ajax(.replace?),但我正在尝试一整天而无法使其工作。

我需要这样的东西:

jQuery(form).ajaxSubmit({
  success: function() {
$('#ajaxRenew').replace('script.php');  
}
});

我希望你能理解我的问题。谢谢!

3 个答案:

答案 0 :(得分:1)

不可能,我不认为。一旦php上下文结束(即,当脚本第一次完成执行时),您将丢失包含。您应该能够在script.php中执行所有相关的包含,并通过ajaxSubmit传递需要通过POST或GET进行的所有参数。

答案 1 :(得分:0)

将所需的变量传递给Ajax/load函数。这将使用第二个参数中指定的数据创建Ajax POST请求。

例如,

<?php
//index.php
$variable = time();
?>
<div id="myDiv">
</div>
<script type="text/javascript">
    $('#myDiv').load('responder.php', {"hello" : <?= $variable ?>});  
</script>
?>



<?php
//responder.php
print_r($_POST);
?>

答案 2 :(得分:0)

您可以让脚本返回div的内容。也许这不是最好的做法,但你可以用JQuery做这样的事情。

$('#formId').submit(function ()
{
    $.post('fle.php', {variable1: 'value'}, function (data)
    {
        /* Check data contents, maybe it's returned as json or what ever */
        $('#divId').html(data);
    }, 'json'); /* Skip the last option if you're not using json */
});

如果你必须包含一个完整的文件,我认为.load是唯一的选择。