2014-01-24 254 views
-2

我是新來的HTML,JQuery.so沒有得到如何解決我的問題。如何驗證按鈕點擊

我的問題是:

在我的網站,我必須提供一個username Validation.Here驗證檢查與MySQL數據庫輸入的用戶名。

如果數據庫包含用戶名,那麼彈出窗口應該來說,username is already exist請輸入備用。

我使用的是Xampp,php。

我的嘗試是:

<label id="showlabel">UserName</label> 
     <input type="text" name="user" id="user" > 
     <input type="button" name="checkuser" id="checkuser" value="Validated" onclick="test();"> 


function test() 

{ 
    /* check user is already exist in database */ 

} 

我不就沒怎麼辦。

請任何人都可以指導我這個。

+1

如果你想通過jQuery來做到這一點,你必須要我們e阿賈克斯。 – user2936213

+2

使用ajax它會解決你的問題。 –

+1

您需要使用AJAX向PHP腳本發送一個異步請求,以檢查是否存在指定的用戶名,然後發送適當的響應。 AJAX請求的成功回調處理程序需要以某種方式處理該響應。 –

回答

2

您可以通過使用AJAX這樣

HTML

<label id="showlabel">UserName</label> 
<input type="text" name="user" id="user" value=""> 
<input type="button" name="checkuser" id="checkuser" value="Validated" onclick="test();"> 

<div id="user_status"></div> 

AJAX

實現這一修改您的測試功能,這樣

<script> 
function test() 
{ 
    var username = document.getElementById('user').value; 
    var url = "check_user.php?username="+username; 

    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) 
     { 

      var result = xmlhttp.responseText; 
      if(xmlhttp.responseText!='') 
      { 
       document.getElementById('user_status').innerHTML =result ; 
      } 
     } 
    } 


    xmlhttp.open("GET",url,true); 

    xmlhttp.send(); 

} 
</script> 

PHP:check_user.php

<?php 
if(!isset($_REQUEST['username']) 
{ 
    echo "please set username"; 
    exit; 
} 
$username = $_REQUEST['username']; 

$username = trim($username); 


if($username=="") 
{ 
    echo "please enter username"; 
} 
else 
{ 
    $res = mysql_query("SELECT * FROM `your_table` WHERE username='$username' LIMIT 1 ") or die(mysql_error()); 
    if($row = mysql_fetch_array($res)) 
    { 
     echo "Username is exists in database"; 
    } 
    else 
    { 
     echo "Username is not exists in database"; 
    } 
} 
?> 
+0

謝謝..它的工作完美.. – user3184286

0
## HTML ## 
<label id="showlabel">UserName</label> 
      <input type="text" name="user" id="user" onblur="test(this);" > 
      <span id="servermessage"/> 

## JQuery ## 

function test(sender) 
{ 
if ($.trim($(sender).val()).length) { 
$.ajax({ 
       type:"POST", 
       async: true, 
       url: "checkusername.php", //In that php file check the value is unique or not in DB 
       data: {username: $(sender).val()}, 
       success: function(data) { 
        if(data) 
         $('#servermessage').text("This username is already taken! Try another."); 
        else 
         $('#servermessage').text('Username is available.'); 
       } 
      }); 
     } 

} 
0

這裏的東西,在你每次輸入字符 時檢查你的用戶名可用性您需要兩個文件

  1. 的index.html
  2. check.php

code f或HTML

  1. 的index.html

     <html> 
         <head> 
         <title>USER CHECK</title> 
         <script type="text/javascript" src="js/jquery.js"></script> 
         <script type="text/javascript"> 
    
         $(document).ready(function(){ 
    
           $('#fb').load('check.php').show(); 
    
         $('#username_input').keyup(function(){ 
          $('#fb').html('<p>Searching...</p>') 
          var dataString = $("#f1").serialize(); 
           //alert (dataString);return false; 
           $.ajax({ 
            type: "POST", 
            url: "check.php", 
            data: dataString, 
            success:function(result) 
            { 
             $('#fb').html(result).show(); 
            } 
          }); 
           return false; 
          }); 
         }); 
         </script> 
         </head> 
         <body> 
          <form id='f1' name='f1' action=""> 
          <label>UserName</label> 
          <input type="text" name="username" id="username_input"><span id="fb"></span> 
          </form> 
         </body> 
         </html> 
    
  2. check.php代碼

    <?php 
    $db = new mysqli('HOST NAME','USER NAME','PASSWORD','DATABASE NAME'); 
    if($db->connect_errno) 
    { 
        die("DATABASE ERROR"); 
    } 
    if(isset($_POST['username'])) 
    { 
        $uname = $_POST['username']; 
    } 
    if(!empty($uname)) 
    { 
    $query= ("select * from yourtablename where username='$uname'"); 
    $result=$db->query($query); 
    $count = $result->num_rows; 
    if($count == 0) 
    { 
        echo "available"; 
    } 
    else if($count == 1) 
    { 
        echo "not available"; 
    } 
    } 
    ?> 
    

    它會顯示 「可用」,如果用戶名可用,否則 「不可用」