-
سلام. من یه کد چک کردن یوزر دارم که نیم با php و نیم با jQuery هست.
مشکل اینجاست که نمیتونم به پی اچ پی متغیر value ِ فیلد نام کاربری رو بفهمونم. مال خود پی اچ پی هم ارور میده :
Undefined Index: ....
کد
کد:
<script type="text/javascript">
$(document).ready(function () {
$("#username").mouseleave(function() {
var usernameexists = $(this).val();
$("#unField").html("<? include '../dtbscnnect.php'; mysql_select_db("x"); $userisexistsindb = mysql_query("SELECT * FROM users WHERE username = 'variable bayad biad inja. ya hamoon var usernameexists'"); if (mysql_num_rows($userisexistsindb) != 0) {echo 'نام کاربری از قبل انتخاب شده!';} else {echo 'نام کاربری از قبل استفاده نشده!';}?>");
});
});
</script>
راستی یادم رفت بگم:
#unField هم آی دی اون span ای هست که توش می نویسه نام کاربری درست یا غلط یا ...
البته شاید بهتر بود توی قسمت php میذاشتمش.
منظور هم از مال خود پی اچ پی اینه:
[PHP]
$_POST['username'];
[/PHP]
-
دکمه ویرایش پایین هر پست بخاطر این هست که شما از فرستادن پستهای پشت سرهم جلوگیری کنید!
کلا روش استفاده شما اشتباه هست، با وجود اینهمه منابع در اینترنت درک نکردن فرق برنامه های سمت سرور با کاربر کمی غیر منطقی هست.
وقتی شما یک صفحه ای که کدهای سمت سرور در اون استفاده شده رو باز می کنید، اول کدهای سمت سرور ترجمه و به کاربر نشون داده میشن. توی کد شما ایراد وجود داره، شما بجای اینکه صفحه رو با php رندر کنید، می خواید با JavaScript رندر کنید!
می تونید از Ajax کمک بگیرید.
-
من ajax بلد نیستم. از جی کوئری هم استفاده کردم. مشکلم در قسمت سمت سرور و سمت کاربر بودنش نیست. مشکل از اینه که نمیتونم از تغییر پذیر جاوا درون پی اچ پی استفاده کنم.
ممنون میشم برام روش رفع مشکلاتش رو بگید یا حل شدش رو بذارید.
راستی منظورتون از رندر چیه؟
با سپاس!
-
امین درست میگه مشکل اینه که شما زمان اجرای جاوا اسکرپت و php رو با هم قاطی کردید و انتظار دارید با خارج شودن ماوس از یک المنت، کد php از اول جرا بشه. این در حالی هست که کد php فقط در اولین باری که صفحه باز میشه اجرا میشه
منطقی ترین راه استفاده از ایجکس هست. اگر بلد نیستید باید یاد بگیرید! امین جان در همین انجمن یک تاپیک آموزش ایجکس داره که میتونید استفاده کنید. مفهومش رو که متوجه بشید دیگه با جی کوئری راحت میتونید از ایجکس استفاده کنید
-
آخه اون خیلی سطح بالاست + کتاب هایی که گذاشتن هم لینکشون خرابه! :دی
=========================
=========================
پس از ویرایش:
حالا نمیشه کدش رو شما بذارین؟ این کتاب خوندنش حداقل 1 هفته وقت می بره!
=========================
=========================
پس از ویرایش:
یا نمیشه مثلا همون کدی که vBulletin استفاده می کنه رو بذارین؟
سپاس.
========================
========================
پس از ویرایش:
من از این کد استفاده کردم ولی نشد! :
AJAX Code:
کد:
function unFLD(strrr) {
if (strrr=="") {
document.getElementById("userNS").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("userNS").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","check.php?username="+strrr,true);
xmlhttp.send();
}
HTML Code:
[HTML]
<td><input type="text" name="username" onchange="unFLD(this.value);" maxlength="12" id="username" style="border-radius:8px; border:1px; background-color:#FD6C01;" /><div id="userNS" style="color:red; font-size:10px;" align="center"></div></td>
[/HTML]check.php:
[PHP]
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include '../dtbscnnect.php';
mysql_select_db("x");
$username = (isset($_GET['username'])) ? $_GET["username"] : 0;
$query = mysql_query("SELECT username FROM users WHERE username = '" . $username . "'") or die(mysql_error());
if (mysql_num_rows($query) != 0) {
echo 'این نام کاربری قبلا استفاده شده!';
} else {
echo 'نام کاربری مجاز می باشد.';
}
mysql_close();
?>
[/PHP]==================
==================
پس از ویرایش:
فهمیدم که مشکل از اینه که با فایرفاکس مشکل داره! با اینترنت اکسپلورر سالمه!
خب. حالا چه شکلی برای فایرفاکس هم درستش کنم؟؟!!
==================
==================
پس از ویرایش:
درست بود کد! مشکل از onchange بود که کردمش onblur درست شد.