PDA

View Full Version : مشکل من با شی گرایی و jquery ؟؟؟



redhat2
جمعه 29 دی 1391, 14:46 عصر
سلام به دوستان ، من یه مشکل پیدا کردم ، من 3 تا صفحه دارم : index.php ، funcs.class.php و jquery.js
تو صفحه ی funcs.class.php یه کلاس user وجود داره که توی این کلاس تابعی وجود داره به نام usernameExist این تابع وصل میشه به database و میبینه که username وجود داره یا نه که اگه وجود داشته باشه ، return true میکنه و اگه نباشه return flase میکنه ، توی صفحه ی index.php من از این قسمت یک شی ساختم به این صورت :

<?php
require_once('includes/funcs.class.php');
$objectUser = new func("localhost","root","","mesaeed");
$objectUser->existUsername($_POST['username']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="js/juser.js" type="text/javascript"></script>
<link rel="stylesheet" href="style.css" />
</head>

<body>
<div class="divclass">
<form action="index.php" method="post" id="login">
Username : <input type="text" name="username" id="username" /><br /><br />
Password : <input type="text" name="password" id="password" /><br /><br />
<input type="submit" value="login" id="submitlogin" /><br /><br />
</form>
</div>
</body>
</html>
میخوام که با jquery این Validate را انجام بدم یعنی با change کردن username این Validate را انجام بده ، میشه یکی برام jquery را بگه .
این هم funcs.class.php :

<?php
require_once('connect.class.php');
class func extends connect
{
protected $_dbusername;
protected $_dbemail;
protected $_dbpassword;
//User ..... Functions .....
function existUsername($dbusername)
{
$this->_dbusername = $dbusername;
global $dbtable,$dbsql,$dbquery;
$dbtable = "users";
$dbsql = "SELECT * FROM ".$dbtable." WHERE username = ?";
$dbquery = $this->_connect->prepare($dbsql);
$dbquery->bind_param("s", $this->_dbusername);
$dbquery->execute();
$dbquery->store_result();
if($dbquery->num_rows == 1)
{
return true;
}
else
{
return false;
}
$dbquery->close();
}
function existEmail($dbemail)
{
$this->_dbemail = $dbemail;
global $dbtable,$dbsql,$dbquery;
$dbtable = "users";
$dbsql = "SELECT * FROM ".$dbtable." WHERE email = ?";
$dbquery = $this->_connect->prepare($dbsql);
$dbquery->bind_param("s", $this->_dbemail);
$dbquery->execute();
$dbquery->store_result();
if($dbquery->num_rows == 1)
{
return true;
}
else
{
return false;
}
$dbquery->close();
}
function UsernameLinkedPassword($dbusername,$dbpassword)
{
$this->_dbusername = $dbusername;
$this->_dbpassword = $dbpassword;
global $dbtable,$dbsql,$dbquery;
$dbtable = "users";
$dbsql = "SELECT * FROM ".$dbtable." WHERE username =? AND password =?";
$dbquery = $this->_connect->prepare($dbsql);
$dbquery->bind_param("ss", $this->_dbusername, $this->_dbpassword);
$dbquery->execute();
$dbquery->store_result();
if($dbquery->num_rows == 1)
{
return true;
}
else
{
return false;
}
}
}
?>
ممنون میشم راهنماییم کنید .
کد اصلی را هم ضمیمه کردم .

$ M 3 H R D A D $
جمعه 29 دی 1391, 15:07 عصر
از خاصیت onchange استفاده کن در جی کوئری و به صورت آجاکس مقدار و بفرست و ببین هست یا نه

$ M 3 H R D A D $
جمعه 29 دی 1391, 15:09 عصر
http://youhack.me/2010/05/04/username-availability-check-in-registration-form-using-jqueryphp/
http://www.tizag.com/ajaxTutorial/ajaxxmlhttprequest.php
http://www.aleixcortadellas.com/main/2009/03/05/465/
http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=522

و http://www.freshdesignweb.com/example-ajax-check-username-with-php.html

redhat2
شنبه 30 دی 1391, 11:27 صبح
من کدام را این شکلی کردم :

index.php :


<?php
require_once('includes/funcs.class.php');
$objectUser = new func("localhost","root","","mesaeed");
if(isset($_POST['username']))
{
$objectUser->existUsername($_POST['username']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="js/juser.js" type="text/javascript"></script>
<link rel="stylesheet" href="style.css" />
</head>

<body>
<div class="divclass">
<form action="index.php" method="post" id="login">
Username : <input type="text" name="username" id="username" /><br /><br />
Password : <input type="text" name="password" id="password" /><br /><br />
<input type="submit" value="login" id="submitlogin" /><br /><br />
</form>
</div>
</body>
</html>

funcs.class.php :


<?php
require_once('connect.class.php');
class func extends connect
{
protected $_dbusername;
protected $_dbemail;
protected $_dbpassword;
//User ..... Functions .....
function existUsername($dbusername)
{
$this->_dbusername = $dbusername;
global $dbtable,$dbsql,$dbquery;
$dbtable = "users";
$dbsql = "SELECT * FROM ".$dbtable." WHERE username = ?";
$dbquery = $this->_connect->prepare($dbsql);
$dbquery->bind_param("s", $this->_dbusername);
$dbquery->execute();
$dbquery->store_result();
if($dbquery->num_rows == 1)
{
echo "1";
}
else
{
echo "0";
}
$dbquery->close();
}

jquery.js :


// JavaScript Document
$(document).ready(function(e) {
$("input#username").change(function(e) {
var username = $("input#username").val()
$.ajax({
type: "POST",
url: "index.php",
data: {username: username},
success: function(msg){
if(msg == "1")
{
alert("Ok . ");
}
else
{
alert("No . ");
}
}
});
});
});


مشکل این هست که وقتی یه یوزری را وارد میکنم (یوزیری که تویه دیتابیس نیست ) ، پیغام Alert no میده .
وقتی هم یه یوزری که تویه Database هست را وارد میکنم (مثل : admin که تویه database هست) بازهم پیغام alert no میده .

$ M 3 H R D A D $
شنبه 30 دی 1391, 11:50 صبح
:دی
خیلی جال کد مینویسین !!
من اوه همه لینک دادم شما سر آخر کد قبلیتونو با کد های جدید در آمیخته کردید ؟؟؟

شما اون قسمت

require_once('includes/funcs.class.php');$objectUser = new func("localhost","root","","mesaeed");if(isset($_POST['username'])){ $objectUser->existUsername($_POST['username']); }
چرا هنوز فعال هست ؟در ایندکس

SadeghPro19
شنبه 30 دی 1391, 11:59 صبح
// JavaScript Document
$(document).ready(function(e) {
$("input#username").change(function(e) {
var username = $("input#username").val()
$.ajax({
type: "POST",
url: "index.php",
data: {username: username},
success: function(msg){
if(msg == 1)
{
alert("Ok . ");
}
if(msg == 0)
{
alert("No . ");
}
}
});
});
});
کدت رو اینجوری کن