我想使用AJAX验证登录表单,但我无法使其正常运行。我认为问题在于“成功”部分。 (我正在使用Codeigniter框架) 这是我的代码:
控制器:
function verificarSesion()
{
if($this->input->post("submitLogin"))
{
$var = $this->usuariosModelo->verificarSesion();
if($var)
{
$sesion = array("usuario" => $this->input->post("usuario"));
$this->session->set_userdata($sesion);
echo "0";
}
else
{
echo "1";
}
}
else
{
echo "2";
}
}
型号:
function verificarSesion()
{
$consulta = $this->db->get_where("usuarios", array(
"usuario"=>$this->input->post("usuario", TRUE),
"contraseña"=>$this->input->post("contraseña", TRUE)));
if($consulta->num_rows() == 1)
{
return true;
}
else
{
return false;
}
}
视图:
<form name="formIni" id="formIni2" action="<?php echo base_url('verifSesion');?>" method="POST" >
<label for="usuario">Usuario</label>
<input type="text" name="usuario">
<label for="contraseña">Contraseña</label>
<input type="password" name="contraseña">
<input onclick="funcion()" type="submit" value="Login" name="submitLogin">
和脚本:
function funcion()
{
$("#formIni2").submit(function(event){
event.preventDefault();
$.ajax({ //envio por ajax los datas
url: $(this).attr("action"),
type: $(this).attr("method"),
data: $(this).serialize(),
success:function(resp){
if(resp!=0)
{
alert("not ok");
}
else
{
alert("ok");
}
}
});
});
}
没有AJAX请求,一切正常,这就是为什么我认为错误出在脚本中。
我可以看到的是var resp
没有得到值。
谢谢。
编辑1: I can see the "0" from the echo but also two more characters that i don't know where they came from
编辑2: 我编辑了控制器函数“ verificarSesion()”,现在返回的是“ 0”,“ 1”和“ 2”,而且我看到的总是返回“ 2”。
答案 0 :(得分:0)
我找到了解决方法:
function verificarSesion()
{
if ($this->input->method(TRUE) == "POST")
{
$var = $this->usuariosModelo->verificarSesion();
if($var)
{
$sesion = array("usuario" => $this->input->post("usuario"));
$this->session->set_userdata($sesion); //asigna una sesion
echo "1";
}
else
{
echo "2";
}
}
else
{
echo "3";
}
}
我只需要更改
if($ this-> input-> post(“ submitLogin”))
为
if($ this-> input-> method(TRUE)==“ POST”)
关于控制器功能。
现在的脚本是:
function funcion()
{
$("#formIni2").submit(function(event){
event.preventDefault();
event.stopImmediatePropagation();
$.ajax({
url: $(this).attr("action"),
type: $(this).attr("method"),
data: $(this).serialize(),
success:function(resp){
alert(resp.trim());
if(resp.trim()==="1")
{
window.location.href = "http://localhost/principal"
}
else
{
alert("Los datos son incorrectos.");
}
}
});
});
}
谢谢大家:)。