使用JQuery自行提交表单

时间:2013-10-31 15:39:56

标签: javascript php jquery forms

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

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

在index.php上,我将填写表单详细信息并单击“提交”,然后重定向到add-album.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">

提前致谢

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

只是阻止表单提交:

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