使用 JQuery 自行提交表单

Using JQuery to self-submit a form

本文关键字:提交 表单 JQuery 使用      更新时间:2023-09-26

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

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

在index.php上,我将填写表单详细信息并单击"提交",然后重定向到添加专辑.php。 如何防止这种情况发生?

JQUERY代码:

$(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">

提前致谢

只需阻止表单提交:

$('form').bind('submit', function(e){
   e.preventDefault();
   return false;
});
表单

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

这意味着当您手动或使用jQuery提交时,您将向与$_SERVER['PHP_SELF']相对应的任何内容发送数据和请求。 如果要到达其他地方,则可能希望将窗体的操作设置为此"当前脚本"值之外的内容。 在本例中,add-album.php 是调用 <?php echo $_SERVER['PHP_SELF'] ?> 的文件,因此您可以在操作中获得 add-album.php。

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