php+ajax問題...

編寫、設計網頁與程式。

版主: hamu278, 銘仔

版面規則
  • 本版面亦可以討論網頁寄存公司

php+ajax問題...

文章SkyBread » 2009-03-18, 23:32

見圖...
紅字果d位係用ajax寫...
打錯出紅字...
冇錯出綠字...

點可以做到一出紅字就禁唔到"註冊"?

ajax.js
代碼: 選擇全部
/**
* AJAX forms
*
* Author : Hatem B.Y.
*/
var AJAXForms = false;
var LastField = null;
var isIE = false;
// on !IE we only have to initialize it once
if (window.XMLHttpRequest) {
   AJAXForms = new XMLHttpRequest();
}

function CheckField(field) {

   if (window.XMLHttpRequest) {
   // branch for IE/Windows ActiveX version
   } else if (window.ActiveXObject) {
      AJAXForms = new ActiveXObject("Microsoft.XMLHTTP");
   }

  AJAXForms.onreadystatechange = processChange;
  AJAXForms.open("GET", "check.php?op=ajax&field=" +field.name+"&value=" + field.value);
  LastField = field.name;
  AJAXForms.send(null);
}

function processChange() {
  if (AJAXForms.readyState == 4) {
 
    var  res = document.getElementById(LastField);
    res.innerHTML = AJAXForms.responseText;
    res.style.visibility = "visible";
   
  }
}


check.php
代碼: 選擇全部
<?
include("config.php");
if ($_GET['op'] == 'ajax') {
   if($_GET['field'] == "username"){
      if ($_GET['value'] == '') {
         $msg = '請填寫名稱';
         $class = "font-navailable";
      }else{
         $sql = "SELECT * FROM `user` where `username`='".mysql_escape_string($_GET['value'])."'";
         $result = $db->query($sql);
         $num_rows = $db->num_rows($result);
         if ($num_rows == 0) {
            $msg = '此名稱可用';
            $class = "font-available";
         } else {
            $msg = '此名稱已經被註冊';
            $class = "font-navailable";
         }
      }
   }elseif($_GET['field'] == "email"){
      if ($_GET['value'] == '') {
         $msg = '請填寫Email';
         $class = "font-navailable";
      }else{
         $sql = "SELECT * FROM `user` where `email`='".mysql_escape_string($_GET['value'])."'";
         $result = $db->query($sql);
         $num_rows = $db->num_rows($result);
         if ($num_rows == 0) {
            $msg = '此Email可用';
            $class = "font-available";
         } else {
            $msg = '此Email已經被註冊';
            $class = "font-navailable";
         }   
      }
   }elseif($_GET['field'] == "msn"){
      if ($_GET['value'] == '') {
         $msg = '請填寫Email';
         $class = "font-navailable";
      }else{
         $sql = "SELECT * FROM `user` where `email`='".mysql_escape_string($_GET['value'])."'";
         $result = $db->query($sql);
         $num_rows = $db->num_rows($result);
         if ($num_rows == 0) {
            $msg = '此MSN可用';
            $class = "font-available";
         } else {
            $msg = '此MSN已經被註冊';
            $class = "font-navailable";
         }   
      }
   }elseif($_GET['field'] == "phone"){
      if ($_GET['value'] == '') {
         $msg = '請填寫聯絡電話';
         $class = "font-navailable";
      }elseif(!eregi("^[0-9]{0,15}$",$phone)){
         $msg = '聯絡電話錯誤';
         $class = "font-navailable";
      }else{
         $sql = "SELECT * FROM `user` where `email`='".mysql_escape_string($_GET['value'])."'";
         $result = $db->query($sql);
         $num_rows = $db->num_rows($result);
         if ($num_rows == 0) {
            $msg = '此聯絡電話可用';
            $class = "font-available";
         } else {
            $msg = '此聯絡電話已經被註冊';
            $class = "font-navailable";
         }
      }   
   }
}
   echo "<?xml version='1.0' encoding='UTF-8'?>
<span class=\"$class\">$msg</span>";

die();
?>


register.php
代碼: 選擇全部
<div align="center"><div class="roundedcorner" style="width:100%;">
   <b class="rtop">
      <b class="r1"></b>
      <b class="r2"></b>
      <b class="r3"></b>
      <b class="r4"></b>
   </b><form action="register.php?action=admin&step=addmember" method="post">
      <div class="font-admin-top"><strong>註冊</strong></div>
      <table width="60%" border="0" bgcolor="#0066FF" cellpadding="1" cellspacing="1">
         
         <tr class="tr-content">
            <td width="15%"><div class="font-admin-table">名稱</div></td>
            <td width="20%"><input type="text" name="username" class="input-admin" OnChange="CheckField(this)" tabindex="1" /></td>
            <td width="40%"><div id="username" class="message"></div></td>
            <td width="25%"></td>
         </tr>
         <tr class="tr-content">
            <td><div class="font-admin-table">密碼</div></td>
            <td><input type="password" name="password" class="input-admin" tabindex="2" /></td>
            <td></td>
            <td></td>
         </tr>
         <tr class="tr-content">
            <td><div class="font-admin-table">重覆密碼</div></td>
            <td><input type="password" name="password_chk" class="input-admin" tabindex="3" /></td>
            <td></td>
            <td></td>
         </tr>
         <tr class="tr-content">
            <td><div class="font-admin-table">Email</div></td>
            <td><input type="text" name="email" class="input-admin" OnChange="CheckField(this)" tabindex="4" /></td>
            <td><div id="email" class="message"></div></td>
            <td><div class="font-admin-table"><input type="checkbox" name="showemail" value="1" tabindex="7" checked />顯示Email</div></td>
         </tr>
         <tr class="tr-content">
            <td><div class="font-admin-table">MSN</div></td>
            <td><input type="text" name="msn" class="input-admin" OnChange="CheckField(this)" tabindex="5" /></td>
            <td><div id="msn" class="message"></div></td>
            <td><div class="font-admin-table"><input type="checkbox" name="showmsn" value="1" tabindex="8" checked />顯示MSN</div></td>
         </tr>
         <tr class="tr-content">
            <td><div class="font-admin-table">聯絡電話</div></td>
            <td><input type="text" name="phone" class="input-admin" OnChange="CheckField(this)" tabindex="6" maxlength="15" /></td>
            <td><div id="phone" class="message"></div></td>
            <td><div class="font-admin-table"><input type="checkbox" name="showphone" value="1" tabindex="9" checked />顯示聯絡電話</div></td>
         </tr>
         <tr>
            <td><button name="submit" type="submit" value="send" style="border:none; font-size-adjust:inherit;" tabindex="10">註冊</button></td>
         </tr>
      </table>
   </form><b class="rbottom">
      <b class="r4"></b>
      <b class="r3"></b>
      <b class="r2"></b>
      <b class="r1"></b>
   </b>
</div><br />


另一方面...ie用唔到... :oops:
您沒有權限檢視這篇文章所附加的檔案。
SkyBread
 

Re: php+ajax問題...

文章Freeman » 2009-03-18, 23:48

試下
代碼: 選擇全部
res.style.visibility = "visible";
下加
代碼: 選擇全部
document.getElementsByName('submit').setAttribute('disabled', 'disabled');
:oops:

(另:D script好亂 :oops: )
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

Re: php+ajax問題...

文章Freeman » 2009-03-19, 00:27

PHONE果個CHECK email既?
$sql = "SELECT * FROM `user` where `email`='".mysql_escape_string($_GET['value'])."'";

(另) check.php
代碼: 選擇全部
<?php

include('config.php');

$available    = FALSE;
$fields      = array('username', 'email', 'phone');

$msg = array(
          'username' => array(
                         'empty'             => '請填寫名稱',
                         'data_not_exist'   => '此名稱可用',
                         'data_exist'       => '此名稱已經被註冊'
                         ),
          'email'    => array(
                         'empty'             => '請填寫Email',
                         'data_not_exist'    => '此Email可用',
                         'data_exist'       => '此Email已經被註冊'
                         ),
          'phone'    => array(
                         'empty'          => '請填寫聯絡電話',
                         'data_not_vaild'    => '聯絡電話錯誤',
                         'data_not_exist'    => '此聯絡電話可用',
                         'data_exist'       => '此聯絡電話已經被註冊'
                         ),
        );

if ( $_GET['op'] == 'ajax' ) {
   
   $field = $_GET['field'];
   $value = $_GET['value'];
   
   if ( !in_array($field, $fields) ) {
      $available = FALSE;
   } else {
      if ( empty($value) ) {
         $msg       = $msg[$field]['empty'];
         $available    = FALSE;
      } else if ( !empty($msg[$field]['data_not_vaild']) ) {
         switch ( $value )
         {
            case 'phone':
               if ( !eregi("^[0-9]{0,15}$", $value) ) {
                 $msg          = $msg[$field]['data_not_vaild'];
                 $available    = FALSE;   
               }
            break;
         }
      } else {
         $sql = 'SELECT *
               FROM user' . "
               WHERE " . $field . " = '" . mysql_escape_string($value) . "'";
         $result = $db->query($sql);
         $num_rows = $db->num_rows($result);
         
         if ( !isset($num_rows) ) {
            $msg       = $msg[$field]['data_not_exist'];
            $available    = TRUE;
         } else {
            $msg       = $msg[$field]['data_exist'];
            $available    = FALSE;
         }
      }
   }
   
}

$msg_available = $msg_available ? 'font-available' : 'font-navailable';

echo "<?xml version='1.0' encoding='UTF-8'?>" . '
   <span class="' . $msg_available . '">' . $msg . '</span>';

die();

?>
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

Re: php+ajax問題...

文章SkyBread » 2009-03-19, 18:58

iamfreeman 寫:PHONE果個CHECK email既?
$sql = "SELECT * FROM `user` where `email`='".mysql_escape_string($_GET['value'])."'";

(另) check.php
代碼: 選擇全部
<?php

include('config.php');

$available    = FALSE;
$fields      = array('username', 'email', 'phone');

$msg = array(
          'username' => array(
                         'empty'             => '請填寫名稱',
                         'data_not_exist'   => '此名稱可用',
                         'data_exist'       => '此名稱已經被註冊'
                         ),
          'email'    => array(
                         'empty'             => '請填寫Email',
                         'data_not_exist'    => '此Email可用',
                         'data_exist'       => '此Email已經被註冊'
                         ),
          'phone'    => array(
                         'empty'          => '請填寫聯絡電話',
                         'data_not_vaild'    => '聯絡電話錯誤',
                         'data_not_exist'    => '此聯絡電話可用',
                         'data_exist'       => '此聯絡電話已經被註冊'
                         ),
        );

if ( $_GET['op'] == 'ajax' ) {
   
   $field = $_GET['field'];
   $value = $_GET['value'];
   
   if ( !in_array($field, $fields) ) {
      $available = FALSE;
   } else {
      if ( empty($value) ) {
         $msg       = $msg[$field]['empty'];
         $available    = FALSE;
      } else if ( !empty($msg[$field]['data_not_vaild']) ) {
         switch ( $value )
         {
            case 'phone':
               if ( !eregi("^[0-9]{0,15}$", $value) ) {
                 $msg          = $msg[$field]['data_not_vaild'];
                 $available    = FALSE;   
               }
            break;
         }
      } else {
         $sql = 'SELECT *
               FROM user' . "
               WHERE " . $field . " = '" . mysql_escape_string($value) . "'";
         $result = $db->query($sql);
         $num_rows = $db->num_rows($result);
         
         if ( !isset($num_rows) ) {
            $msg       = $msg[$field]['data_not_exist'];
            $available    = TRUE;
         } else {
            $msg       = $msg[$field]['data_exist'];
            $available    = FALSE;
         }
      }
   }
   
}

$msg_available = $msg_available ? 'font-available' : 'font-navailable';

echo "<?xml version='1.0' encoding='UTF-8'?>" . '
   <span class="' . $msg_available . '">' . $msg . '</span>';

die();

?>

因為我就咁copy左落去先... :oops: :oops:
(通常寫好先簡化...而家你代我做左呢一步...thx... :oops: :oops: )
SkyBread
 

Re: php+ajax問題...

文章Freeman » 2009-03-19, 19:03

代碼: 選擇全部
document.getElementsByName('submit').setAttribute('disabled', 'disabled');

得唔得?
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

Re: php+ajax問題...

文章bananasims » 2009-03-19, 19:32

iamfreeman 寫:
代碼: 選擇全部
document.getElementsByName('submit').setAttribute('disabled', 'disabled');

得唔得?

我第一次聽有 get by name… get by id 啦,實無事
代碼: 選擇全部
document.getElementById('submit').disabled = true;

:oops:
不過 Skybread 要自己同佢加返個 ID 囉 :oops:
影像.從心 At the heart of the ímage
bananasims
太陽會員
 
文章: 13541
註冊時間: 2005-09-22, 00:00

Re: php+ajax問題...

文章SkyBread » 2009-03-19, 21:35

bananasims 寫:
iamfreeman 寫:
代碼: 選擇全部
document.getElementsByName('submit').setAttribute('disabled', 'disabled');

得唔得?

我第一次聽有 get by name… get by id 啦,實無事
代碼: 選擇全部
document.getElementById('submit').disabled = true;

:oops:
不過 Skybread 要自己同佢加返個 ID 囉 :oops:

彈完紅字...
改返之後彈綠字...
禁唔到...

就咁綠字都係咁...
SkyBread
 

Re: php+ajax問題...

文章Freeman » 2009-03-19, 22:10

代碼: 選擇全部
function processChange() {
    if (AJAXForms.readyState == 4) {
 
        var  res = document.getElementById(LastField);
        res.innerHTML = AJAXForms.responseText;
        res.style.visibility = "visible";
        document.getElementById('submit').disabled = true;
    } else {
        document.getElementById('submit').disabled = false;
    }
}
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

Re: php+ajax問題...

文章SkyBread » 2009-03-20, 18:46

iamfreeman 寫:
代碼: 選擇全部
function processChange() {
    if (AJAXForms.readyState == 4) {
 
        var  res = document.getElementById(LastField);
        res.innerHTML = AJAXForms.responseText;
        res.style.visibility = "visible";
        document.getElementById('submit').disabled = true;
    } else {
        document.getElementById('submit').disabled = false;
    }
}

都係唔得...

ps.試下搵有冇第二d code...呢個IE用唔到 :oops: (我堆Target全部都係用IE...)
SkyBread
 

Re: php+ajax問題...

文章hamu278 » 2009-03-20, 19:38

我會用 jQuery 幫手 :P
圖檔
頭像
hamu278
金星會員
 
文章: 4482
註冊時間: 2006-06-04, 08:49
來自: 香港

Re: php+ajax問題...

文章SkyBread » 2009-03-20, 22:05

hamu278 寫:我會用 jQuery 幫手 :P

我唔係幾明點用佢... :oops:
(ps.係唔係g-hk forum圖片果到用緊...?)
SkyBread
 

Re: php+ajax問題...

文章bananasims » 2009-03-20, 22:06

SkyBread 寫:
hamu278 寫:我會用 jQuery 幫手 :P

我唔係幾明點用佢... :oops:
(ps.係唔係g-hk forum圖片果到用緊...?)

viewtopic.php?f=100&t=8456 :oops:
影像.從心 At the heart of the ímage
bananasims
太陽會員
 
文章: 13541
註冊時間: 2005-09-22, 00:00

Re: php+ajax問題...

文章Freeman » 2009-03-20, 22:54

學jQ好易...官網個WIKI已經好夠用 :D
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

Re: php+ajax問題...

文章bananasims » 2009-03-20, 23:02

學咗真係 Write Less, Do More ;)
影像.從心 At the heart of the ímage
bananasims
太陽會員
 
文章: 13541
註冊時間: 2005-09-22, 00:00

Re: php+ajax問題...

文章Freeman » 2009-03-20, 23:15

缺點係無LIB果時唔識寫JS :oops:
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

Re: php+ajax問題...

文章銘仔 » 2009-03-20, 23:24

我有少少想買jQ既書,因為可以拎返學校睇,唔知各位有咩睇法 :)
頭像
銘仔
金星會員
 
文章: 3017
註冊時間: 2007-04-05, 20:36

Re: php+ajax問題...

文章Freeman » 2009-03-21, 00:03

好.. :geek:
我都要買 :oops:
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

Re: php+ajax問題...

文章bananasims » 2009-03-21, 08:54

借咪得 :oops:
影像.從心 At the heart of the ímage
bananasims
太陽會員
 
文章: 13541
註冊時間: 2005-09-22, 00:00

Re: php+ajax問題...

文章hamu278 » 2009-03-21, 09:12

用幾小時係 google 搵資料,抄落筆記本帶返學校咪得囉 :P
圖檔
頭像
hamu278
金星會員
 
文章: 4482
註冊時間: 2006-06-04, 08:49
來自: 香港

Re: php+ajax問題...

文章Freeman » 2009-03-21, 11:38

網上果D成日教錯人, 我學CSS果陣已經明白呢一點 :oops:
Freeman
地球會員
 
文章: 1680
註冊時間: 2008-06-25, 21:04

下一頁

回到 [B1] 網頁製作、程式編寫與介面設計



誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 113 位訪客

cron