나는 PHP에서 로그인 폼을 가지고있다. 사용자 이름이나 암호가 잘못되었을 때 페이지가 다시로드되지 않도록 ajaxform을 사용했습니다. 나는 username과 pw가 데이터베이스에 있는지 검사하고 행 수를 반환하는 또 다른 checklogin.php 페이지가 있습니다. login.php의 수를 비교하고 count = 1이면 오류 메시지를 표시하고 count = 2이면 다른 페이지로 리디렉션하고 싶습니다. 나는 타겟을 사용하여 errordiv에 카운트를 표시하려고 시도했다. 'errordiv'와 innerHTML을 체크했지만 실패했다.아약스 양식의 반환 값
내 login.php
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="scripts/jquery.form.js"></script>
<!--Slider-in icons-->
<script type="text/javascript">
function checklogin()
{
var request=$("#login-form").ajaxForm(
{
target:'#errordiv'
}).abort();
request.submit();
var divmsg=document.getElementById("errordiv");
if (divmsg.childNodes[0].nodeValue == "1")
{
divmsg.childNodesp[0].nodeValue="Sorry";
alert ("Invalid username or password");} //I didn't get the alert as well a the divmsg content didn't change
};
</script>
</head>
<body>
<!--WRAPPER-->
<div id="wrapper">
<!--LOGIN FORM-->
<form name="login-form" id="login-form" class="login-form" action="checklogin.php" method="post">
<!--CONTENT-->
<div class="content">
<!--USERNAME--><input name="un" type="text" class="input username" placeholder="Username" onfocus="this.value=''" required="required" /><!--END USERNAME-->
<!--PASSWORD--><input name="pw" type="password" class="input password" placeholder="Password" onfocus="this.value=''" required="required" /><!--END PASSWORD-->
</div>
<!--END CONTENT-->
<!--FOOTER-->
<div class="footer">
<!--LOGIN BUTTON--><input type="submit" name="submit" value="Login" class="button" onclick="checklogin()" /><!--END LOGIN BUTTON-->
</div>
<!--END FOOTER-->
</form>
<div id="errordiv" class="errordiv"></div>
<!--END LOGIN FORM-->
checklogin.php
<?php
include ('dbconn.php');
$user = trim($_POST['un']);
$pass = trim($_POST['pw']);
$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);
$result=mysql_query("select Id from login where Username='$user' and Password='$pass'") or die (mysql_error());
$result= mysql_fetch_assoc($result);
$num= count ($result);
echo $num;
?>
전 사업부에 표시하지 않고 login.php에서 $ 인분의 값을 얻을 $의 값을 비교할 수있는 방법 그래서 errordiv에 errormsg를 표시하거나 $ num == 2가 다른 페이지로 리다이렉트하면.
당신의 처리기 코드는 성공 콜백으로 이동해야합니다. – Orangepill
가능한 [AJAX 호출에서 응답을 반환하는 방법?] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – elclanrs
사용 중 아약스 호출과 아약스 양식은 같은 ?? – user1583647