我遇到了这个登录系统的问题,当我点击登录按钮或注册按钮时,它会将我重新指向一个带有写入的白页,据说它干扰了我的日志在行动。
以下是我认为导致问题的代码,
<form method="POST" action="" accept-charset="UTF-8">
在HTML代码的第16行,我试图取出该代码并停止重定向,但文本框不合适,并且白色背景/背景框也不存在,
链接, HERE
答案 0 :(得分:2)
如果这是一个纯粹的Javascript,你想使用preventDefault():你应该能够在创建它时将按钮按下事件传递给监听器:
$('.login').on('click', function(e) {
e.preventDefault();
// Will be executed on press
}
<form method="POST" class="login" accept-charset="UTF-8">
如果在这种情况下没有JS参与,那么你想完全摆脱动作参数 - 将其保留为空字符串仍然会导致它在某些情况下重定向。
答案 1 :(得分:0)
正如Jonathan Lonowski上面所解释的那样,当点击登录 / 注册按钮时,表单会将数据发布到{{1}中提到的页面}属性。由于此表单标记中的此属性为空,因此它将重新加载同一页面,并将数据发布到自身。
数据将以action=
变量对的形式到达。变量值将是字段的内容,变量名称将是元素上key=value
属性的值。
例如,对于此字段:
name=""
将收到如下数据:
<input id="fname" name="first" value="Bobby" />
在包含表单的页面上,在顶部添加一个部分,如下所示:
$fn = $_POST['first']; //value is Bobby, or whatever user enters
这就是你处理普通HTML <?php
if (isset($_POST['fname']) == true){
$fn = $_POST['fname'];
echo "Received First Name: " . $fn;
die();
}else{
?>
//Your current page, in its entirety, goes here
<?php
} //close the PHP if statement
?>
构造的方法。
但是,如果您希望使用AJAX与PHP文件进行通信而不更改页面,则:
(1)不需要使用<form>
构造,只需使用带有输入按钮的DIV:<form>
(2)使用标准js / jQuery捕捉按钮按下:
<input type="button" id="sub_btn" value="Submit" />
在PHP处理器文件中,将收到数据:
$('sub_btn').click(function(){
var fn = $('#first').val();
//etc.
$.ajax(function(){
type: 'post',
url: 'my_php_processing_file.php',
data: 'fname=' +fn+ '&lname=' etc
});
});
(3) IF 您确实使用了表单构造,您仍然可以执行上述所有操作,但您需要禁止导航到{{1中指定的页面的默认表单操作属性(<?php
$fn = $_POST['fname'];
$ln = $_POST['lname'];
//Do your MySQL lookup here...
echo 'Received ' .$fn. ' ' .$ln;
的属性设置会将数据发布到您正在的页面并重新加载。)
要取消导航到action=
中指定的页面(包括页面刷新,即使只是action=""
),请使用action=
,如下所示:
action=""