0

我正在尝试使用 JQuery 在 DIV 的同一页面上提交表单。它工作正常,但是每当我提交表单时,它都会重新加载表单脚本。例如

add-album.php 包含表单,PHP 逻辑
index.php 在 DIV 标记中包含 include("add-album.php")。

在 index.php 上,我将填写表单详细信息并单击“提交”,然后重定向到 add-album.php。我怎样才能防止这种情况发生?

查询代码:

$(function() {
    $("a.ajax-link").on("click", function(e) {
        e.preventDefault();
        $("#container").load(this.href);
    });
});

PHP _SELF 形式:

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">

提前致谢

4

2 回答 2

0

只是阻止表单提交:

$('form').bind('submit', function(e){
   e.preventDefault();
   return false;
});
于 2013-10-31T15:45:26.503 回答
0

表单的操作是当前脚本的地址,因为您将其设置为$_SERVER['PHP_SELF']. 不过,这有点棘手——它将是运行该代码的脚本,它可能是也可能不是由浏览器直接加载的脚本。

这意味着当您手动或使用 jQuery 提交时,您将发送数据和请求到任何对应于$_SERVER['PHP_SELF']. 如果您想到达其他地方,您可能希望将表单的操作设置为除此“当前脚本”值之外的其他内容。在这种情况下, add-album.php 是正在调用的文件<?php echo $_SERVER['PHP_SELF'] ?>,因此您会在操作中获得 add-album.php。

要了解我的意思,请查看 index.php 页面的渲染代码。您将看到表单标签呈现与action="add-album.php"或类似的东西。这就是为什么 add-album.php 在您提交时加载的原因。您可能会发现使用静态值设置操作是您想要的。您遗漏了一个重要细节 - 您想将表单数据发送到哪里?

于 2013-10-31T15:42:59.443 回答