我正在尝试使用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">
提前致谢
答案 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;
});