เช็คค่า username เเละ email ซ้ำเเบบ ajax เเละต้องการเช็คค่าว่างของฟิลอื่นๆ เขียนฟังชันรวมกันได้ป่าวค่ะ
1.โค้ดเช็คค่า username เเละ email ซ้ำเเบบ ajax ถ้าต้องการเช็คค่าว่างของฟิลอื่นๆด้วยไม่ทราบว่าสามารถเขียนรวมกันได้ป่าวค่ะ โค๊ดด้านล่างนี้ค่ะ
Code (PHP)
<script type="text/javascript">
$('#submit').click(function()
{
if($("#txtName").val()=="")
{
$("#name_error").html("*กรุณากรอกชื่อ-นามสกุล");
return false;
}
if($("#txtEmail").val()!="")
{
if(($("#txtEmail").val().indexOf("@")==-1)||($("#txtEmail").val().indexOf(".")==-1))
{
$("#email_error").html("*รูปแบบ อีเมล ไม่ถูกต้อง");
return false;
}
}
else
{
$("#email_error").html("*กรุณากรอก อีเมล ");
return false;
}
if($("#txtUsername").val()=="")
{
$("#username-error").html("*กรุณากรอก ชื่อบัญชีผู้ใช้");
return false;
}
if($("#txtPassword").val()=="")
{
$("#password-error").html("*กรุณากรอก รหัสผ่าน");
return false;
}
if($("#txtConPassword").val()=="")
{
$("#conpassword-error").html("*กรุณากรอก ยืนยันรหัสผ่าน");
return false;
}
if($("#txtConPassword").val()!=$("#txtPassword").val())
{
$("#conpassword-error").html("*ยืนยัน รหัสผ่าน ไม่ตรงกัน");
return false;
}
});
</script>
2.ช่วยดูไฟล์ save_member.php ให้หน่อยค่ะ ไมทราบว่าผิดตรงไหนรึป่าว เพราะก่อนหน้านี้ใช้การเช็ค username ตอนที่มีการบันทึกลง ฐานข้อมูล ตอนนี้เข้าเคส ลงทะเบียนผิดพลาดอย่างเดียวค่ะ
ไฟล์register.php
Code (PHP)
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<!--<script type="text/javascript" src="js/regis.js"></script>-->
<script type="text/javascript">
$(document).ready(function(){
$("#txtUsername,#txtEmail").change(function(){
$("#username-error").empty();
$("#email-error").empty();
$.ajax({
url: "check_form.php" ,
type: "POST",
data: 'username-error=' +$("#txtUsername").val()+'&email-error='+$("#txtEmail").val()
})
.success(function(result) {
var obj = jQuery.parseJSON(result);
if(obj != '')
{
$.each(obj, function(key, inval) {
if($("#txtUsername").val() == inval["Username"])
{
$("#username-error").html("ชื่อผู้ใช้นี้มีอยู่แล้ว");
}
if($("#txtEmail").val() == inval["Email"])
{
$("#email-error").html("อีเมลนี้มีอยู่แล้ว");
}
});
}
});
});
});
</script>
<div id="block_regis_new">
<form action="save_member.php" method="post" name="form1" id="form1">
<table width="300px">
<tr>
<td><label><h4> ลงทะเบียน</h4></label></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><label> ชื่อ -นามสกุล :</label>
</td>
</tr>
<tr>
<td><input name="txtName" type="text" id="txtName" size="35" class="form-control" placeholder="ชื่อ - นามสกุล" />
<span class="input-notification error png_bg" id="name-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> อีเมล :</label>
</td>
</tr>
<tr>
<td><input name="txtEmail" type="text" id="txtEmail" size="35" class="form-control" placeholder="อีเมล" />
<span class="input-notification error png_bg" id="email-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> ชื่อผู้ใช้เข้าสู่ระบบ :</label>
</td>
</tr>
<tr>
<td><input name="txtUsername" type="text" id="txtUsername" class="form-control" placeholder="ชื่อผู้ใช้เข้าสู่ระบบ" size="35"/>
<span class="input-notification error png_bg" id="username-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> รหัสผ่าน :</label>
</td>
</tr>
<tr>
<td><input name="txtPassword" type="password" id="txtPassword" class="form-control" placeholder="รหัสผ่าน" size="35" />
<span class="input-notification error png_bg" id="password-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> ยืนยันรหัสผ่านอีกครั้ง :</label>
</td>
</tr>
<tr>
<td><input name="txtConPassword" type="password" id="txtConPassword" class="form-control" placeholder="ยืนยันรหัสผ่านอีกครั้ง" size="35" />
<span class="input-notification error png_bg" id="conpassword-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><span style="float:left"><input type="submit" name="submit" value="ลงทะเบียน" class="btn btn-default" /></span><span style="float:left"><div class="btn btn-default"><a href="index.php">ยกเลิกการสมัครสมาชิก</a></div></span></td>
</tr>
</table>
</form>
</div>
ไฟล์ check_form.php
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","1234") or die(mysql_error());
$objDB = mysql_select_db("mook1");
$strSQL = "SELECT * FROM member WHERE 1 AND username = '".$_POST["username-error"]."' OR email = '".$_POST["email-error"]."' ";
$objQuery = mysql_query($strSQL) or die (mysql_error());
$intNumField = mysql_num_fields($objQuery);
$resultArray = array();
while($obResult = mysql_fetch_array($objQuery))
{
$arrCol = array();
for($i=0;$i<$intNumField;$i++)
{
$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
}
array_push($resultArray,$arrCol);
}
mysql_close($objConnect);
echo json_encode($resultArray);
?>
ไฟล์ save_member.php
Code (PHP)
<?php
$yea = date("Y")+543;
//$hou = date("h")-1;
$username = $_POST['txtUsername'];
$password = $_POST['txtPassword'];
$name = $_POST['txtName'];
$email = $_POST['txtEmail'];
$m_date = date("d-m-$yea H:i:s");
$sqlcheck = "SELECT
`member`.member_id,
`member`.member_name,
`member`.username,
`member`.password
FROM
`member`
WHERE
`member`.username = '$username'
";
//echo $sqlcheck;
$resultcheck = mysql_query($sqlcheck)or die(mysql_error().$sqlcheck);
$numuser = mysql_num_rows($resultcheck);
//echo $numuser;
if($numuser==0){
$sql = "INSERT INTO member (
member_name,
email,
member_date,
username,
password
) VALUES (
'$name',
'$email',
'$m_date',
'$username',
'$password' )";
if(mysql_query($sql)){
$sql1 = "SELECT
`member`.member_id,
`member`.member_name,
`member`.username,
`member`.password
FROM
`member`
WHERE
`member`.username = '$username' AND
`member`.password = '$password'
";
//echo $sql;
$result = mysql_query($sql1)or die(mysql_error().$sql1);
$num = mysql_num_rows($result);
if($num>0)
{
$row=mysql_fetch_array($result);
$_SESSION["member_id"]=$row['member_id'];
$_SESSION["s_checkAdminLogin"]="AdminLoginOnly";
}
echo "ลงทะเบียนเรียบร้อยแล้ว";
echo "<meta http-equiv='refresh' content='1;URL=profile_edit.php'>";
}
}
else
{
echo "ลงทะเบียนผิดพลาด";
echo "<meta http-equiv='refresh' content='1;URL=index.php'>";
}
?>
รูปเเบบของฟอร์มลงทะเบียน ต้องการให้เเจ้งเตือนเป็นข้อความสีเเดงด้านล่างของเเต่ละฟิลล์
Tag : PHP, MySQL, Ajax
ประวัติการแก้ไข 2014-12-14 14:30:40
Date :
2014-12-14 14:29:48
By :
nb_kratai
View :
5999
Reply :
5
1.เอามารวมกันในฟังก์ชันเดียวเเล้วนะค่ะ ทดลองใช้งานเเล้วก็ไม่เช็คสักเงื่อนไขเลยค่ะ รบกวนอธิบายหน่อยนะค่ะ ไม่ค่อยเข้าใจเท่าไหร่ค่ะ
ไฟล์ register.php
Code (PHP)
<script type="text/javascript">
$(document).ready(function(){
$('#submit').click(function()
{
if($("#txtName").val()=="")
{
$("#name_error").html("*กรุณากรอกชื่อ-นามสกุล");
return false;
}
if($("#txtEmail").val()!="")
{
if(($("#txtEmail").val().indexOf("@")==-1)||($("#txtEmail").val().indexOf(".")==-1))
{
$("#email_error").html("*รูปแบบ อีเมล ไม่ถูกต้อง");
return false;
}
}
else
{
$("#email_error").html("*กรุณากรอก อีเมล ");
return false;
}
if($("#txtUsername").val()=="")
{
$("#username-error").html("*กรุณากรอก ชื่อบัญชีผู้ใช้");
return false;
}
if($("#txtPassword").val()=="")
{
$("#password-error").html("*กรุณากรอก รหัสผ่าน");
return false;
}
if($("#txtConPassword").val()=="")
{
$("#conpassword-error").html("*กรุณากรอก ยืนยันรหัสผ่าน");
return false;
}
if($("#txtConPassword").val()!=$("#txtPassword").val())
{
$("#conpassword-error").html("*ยืนยัน รหัสผ่าน ไม่ตรงกัน");
return false;
}
$("#txtUsername,#txtEmail").change(function(){
$("#username-error").empty();
$("#email-error").empty();
$.ajax({
url: "check_form.php" ,
type: "POST",
data: 'username-error=' +$("#txtUsername").val()+'&email-error='+$("#txtEmail").val()
})
.success(function(result) {
var obj = jQuery.parseJSON(result);
if(obj != '')
{
$.each(obj, function(key, inval) {
if($("#txtUsername").val() == inval["Username"])
{
$("#username-error").html("ชื่อผู้ใช้นี้มีอยู่แล้ว");
}
if($("#txtEmail").val() == inval["Email"])
{
$("#email-error").html("อีเมลนี้มีอยู่แล้ว");
}
});
}
});
});
});
});
</script>
<div id="block_regis_new">
<form action="save_member.php" method="post" name="form1" id="form1">
<table width="300px">
<tr>
<td><label><h4> ลงทะเบียน</h4></label></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><label> ชื่อ -นามสกุล :</label>
</td>
</tr>
<tr>
<td><input name="txtName" type="text" id="txtName" size="35" class="form-control" placeholder="ชื่อ - นามสกุล" />
<span class="input-notification error png_bg" id="name-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> อีเมล :</label>
</td>
</tr>
<tr>
<td><input name="txtEmail" type="text" id="txtEmail" size="35" class="form-control" placeholder="อีเมล" />
<span class="input-notification error png_bg" id="email-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> ชื่อผู้ใช้เข้าสู่ระบบ :</label>
</td>
</tr>
<tr>
<td><input name="txtUsername" type="text" id="txtUsername" class="form-control" placeholder="ชื่อผู้ใช้เข้าสู่ระบบ" size="35"/>
<span class="input-notification error png_bg" id="username-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> รหัสผ่าน :</label>
</td>
</tr>
<tr>
<td><input name="txtPassword" type="password" id="txtPassword" class="form-control" placeholder="รหัสผ่าน" size="35" />
<span class="input-notification error png_bg" id="password-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td><label> ยืนยันรหัสผ่านอีกครั้ง :</label>
</td>
</tr>
<tr>
<td><input name="txtConPassword" type="password" id="txtConPassword" class="form-control" placeholder="ยืนยันรหัสผ่านอีกครั้ง" size="35" />
<span class="input-notification error png_bg" id="conpassword-error" style="color:#F00"></span>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><span style="float:left"><input type="submit" name="submit" value="ลงทะเบียน" class="btn btn-default" /></span><span style="float:left"><div class="btn btn-default"><a href="index.php">ยกเลิกการสมัครสมาชิก</a></div></span></td>
</tr>
</table>
</form>
</div>
2.ไฟล์ save_member.php ถ้าเราเช็ค username ซ้ำ ในฟังก์ชันเเล้ว ในไฟล์ save_member.php นี้ต้องเช็คอีกป่าวค่ะ พอจะเเนะหน่อยได้ป่าวค่ะ ว่าต้องเขียนยังไง ไม่เข้าใจจริงๆค่ะ กลับไปดูโค๊ดเเล้วก็ยังเเก้ไม่ได้ค่ะ
Date :
2014-12-14 18:06:24
By :
nb_kratai
ใช้ plugin ง่ายกว่าไม๊
jqueryvalidation
Date :
2014-12-15 10:13:09
By :
mangkunzo
Load balance : Server 05