• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در دستور ای جکس فرم ثبت نام
#1
سلام
من یک فرم ثبت نام نوشتم و می خواستم با ای جکس username را بررسی کند که اگر قبلا نام کاربری ثبت شده بود، textfield قرمز شود و گرنه سبز.

مشکل اینجاست که:
در فایل sabtenam.php در کد های ای جکس در قسمت
کد پی‌اچ‌پی:
if(xmlhttp.responseText=='yes'
همیشه وارد else می شود و چه نام کاربری قبلا ثبت شده باشد چه نشده باشد همیشه textfield سبز میشود.

فایل ها را ضمیمه کردم. لطفا اگه امکانش هست بررسی کنید.

خیلی متشکر


فایل‌های پیوست
.zip   user.zip (اندازه 3.55 KB / تعداد دانلود: 28)
  پاسخ
تشکر شده توسط :
#2
(۱۳۸۹ دى ۲۸, ۰۲:۳۱ ق.ظ)mkmk نوشته: سلام
من یک فرم ثبت نام نوشتم و می خواستم با ای جکس username را بررسی کند که اگر قبلا نام کاربری ثبت شده بود، textfield قرمز شود و گرنه سبز.

مشکل اینجاست که:
در فایل sabtenam.php در کد های ای جکس در قسمت
کد پی‌اچ‌پی:
if(xmlhttp.responseText=='yes'
همیشه وارد else می شود و چه نام کاربری قبلا ثبت شده باشد چه نشده باشد همیشه textfield سبز میشود.

فایل ها را ضمیمه کردم. لطفا اگه امکانش هست بررسی کنید.

خیلی متشکر
کدتون رو به این صورت تغییر بدین ببینید نتیجه برگشتی چی هست.
کد:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
alert(xmlhttp.responseText);
.....
...
  پاسخ
تشکر شده توسط : mkmk
#3
سلام
متشکر از پاسختون
کد پی‌اچ‌پی:
alert(xmlhttp.responseText); 
کد بالا را اجراکردم. درست تشخیص می دهد در صورت وجود داشتن نام کاربری پیغام yes و در صورت وجود نداشتن پیغام no می دهد.

پس احتمالا مشکل در این قطعه کد هست:
کد پی‌اچ‌پی:
if(xmlhttp.responseText=='yes')
  {
           
document.getElementById('username2').className='red';
           
s.innerHTML='<font color="Red">این نام کاربری قبلا ثبت شده است.</font>';        
  }
  else 
  {
            
document.getElementById('username2').className='green';
         
s.innerHTML='<font color="Green">نام کاربری صحیح است. </font>';
         
  } 


فایل chek.php هم به این صورت است:
کد پی‌اچ‌پی:
<?php
require("connect.php");
@
error_reporting(E_ALL E_NOTICE);
$u=$_GET['username'];
$q="select * from user where username='$u'";
$res=mysql_query($q);
if(
mysql_num_rows($res))
     {
        echo 
'yes';
    }
else 
    { echo 
'no';}
?>
  پاسخ
تشکر شده توسط :
#4
درسته که yes یا no نشون میده اما برای این وارد else میشه چون یک کاراکتر اضافه ای هم داره که توی این alert که براتون گذاشتم دیده نمیشه .چک می کنم دوباره براتون شما هم اگه به نتیجه رسیدین همینجا بگذارین.



فایل connect.php دو خط پایینش whitespace هست که توی نوتپد دیده نمیشه اگه با notepad++ باز کنین خط 7 و 8 هست که هیچی نیست اما توی مقدار بازگشتی میفته .فقط کافیه این دو خط رو پاک کنید.
  پاسخ
تشکر شده توسط : mkmk admin
#5
نقل قول:فایل connect.php دو خط پایینش whitespace هست که توی نوتپد دیده نمیشه اگه با notepad++ باز کنین خط 7 و 8 هست که هیچی نیست اما توی مقدار بازگشتی میفته .فقط کافیه این دو خط رو پاک کنید.

درست شد.Smile
از اینکه وقت گذاشتید بررسی کردید ممنونم.
  پاسخ
تشکر شده توسط :
#6
من یه مدت دنبال هم چین کدی می گشتم مورد خوبی پیدا نمیکردم.واقعا ممنونم
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان