在會員註冊時提醒使用者此帳號已使用的功能

edited 十月 2013 in PHP新手區
如題,
今天試著去做這功能,
但是,
就是在註冊的帳號旁邊加了一個檢查鈕,
按了之後會有alert提醒是否註冊,
onclick="CheckID()"

不過問題來了,
我要怎麼讓CheckID()是我自己php函式,
(因為js應該不能調DB的資料吧?)
而且又不讓他切頁呢??
檢查完之後還要讓他出現alert...

有誰知道方向嗎??

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4390

評論

  • edited 八月 2009
    用ajax做
    其實說破了就是javascript中有一個XMLHttpRequest物件
    用它去呼叫php,php去撈db後把資訊傳回來
    不然就用隱藏iframe
    iframe的作法是用location.href去轉向驅動一個php
    php回傳一段javascript,這段javascript中會包含資訊
    並去驅動主視窗的javascript function
  • edited 八月 2009
    iframe的作法是用location.href去轉向驅動一個php
    php回傳一段javascript,這段javascript中會包含資訊
    並去驅動主視窗的javascript function

    這段話可以舉個例嗎??
    好像沒有完全領會...
  • edited 八月 2009
    我在檢查鈕後面加這個
    onClick="iframe1.href='02b.html'

    好像也不會跳頁...
    這樣也不行...
    onClick="document.iframe1.href='02b.html'

    其中iframe是那樣隱藏frame,
    如果試成功後我再把'02b.html'改成檢查id的php,
    = 'check_id.php?id=$id'
  • edited 八月 2009
    reg.php(註冊表單)
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>try</title>
    <script language="javascript">
    var span;
    var act;
    var ereg=new RegExp('\\W','g');//js正規表達式物件
    function set_var()
    {
    	span=document.getElementById('mgs');
    	act=document.getElementById('account');
    }
    function CheckID()
    {
    	if(act.value.length<3)
    	{
    		span.innerHTML='長度過短';
    		return false;
    	}
    	if(ereg.test(act.value))
    	{
    		span.innerHTML='限制英數與底線組合';
    		ereg.lastIndex=0;
    		return false;
    	}
    	else
    	{
    		ereg.lastIndex=0;
            parent.run_php.location.href='./check.php?id='+act.value;
    	}
    }
    function php_mgs(pmgs)//這個函數會呼應check.php回應的資訊
    {
    	span.innerHTML=pmgs;
    }
    </script>
    </head>
    <body onload='set_var()'>
    Account:<input type='text' name='account' id='account'><br>
    <input type='button' value='CheckID' onclick='CheckID()'><span id='mgs'></span>
    <!--這個span區域是顯示資訊的地方-->
    <iframe name='run_php' src='' style='display:none;'></iframe>
    </body>
    </html>
    
    check.php(iframe中的php程式)
    <?php
    if(isset($_GET['id']))
    {
    	$SQLstr="SELECT id FROM user WHERE account='{$_GET['id']}';";
    	$link=mysqli_connect('localhost','root','','test');
    	$RS=mysqli_query($link,$SQLstr);
    	if(mysqli_num_rows($RS)>0)
    	{
    		echo "<script language='javascript'>
    		      window.parent.php_mgs('{$_GET['id']}已經有人使用');
    		      </script>";//window.parent可呼叫父視窗頁的函數
    	}
    	else
    	{
    		echo "<script language='javascript'>
    		      window.parent.php_mgs('{$_GET['id']}可以使用');
    		      </script>";//這邊的重點是用php生javascript
    	}
    }
    ?>
    
    哪邊看不懂再提吧..
Sign In or Register to comment.