簡體   English   中英

檢查記錄是否模糊存在於mySQL數據庫中

[英]Check if record exists in mySQL Database on blur

我正在考慮如何實現這種情況:

我有一個表orders ,其中有一個serialNumber字段。 然后,我還有一個帶有表單的PHP頁面。 我想做的是,在onBlur或按鍵輸入/返回<input type=text>字段時,我希望ajax / jquery腳本從文本框輸入中檢查序列號(如果它具有現有記錄)在我的mySQL數據庫中。 然后,腳本將警告用戶該序列號已存在於數據庫中,並且將不允許提交。

我知道如何使用標准表單提交來實現它,但是我一直在想,不用按一下提交按鈕就可以完成它。

有辦法實現嗎?

為此,您可以使用javascript。 在模糊事件上在文本框上調用的javascript上創建。 在這里,我創建了在模糊事件上調用文本框的函數。

function CheckUserName(){
    var UserName = document.getElementById('UserName');
    if(UserName.value != "")
    {
        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 value = xmlhttp.responseText;
                if(value.length > 1)
                {
                    document.getElementById('ErrorSpan').innerHTML="User Name Already exist please choose Other User Name";
                    UserName.focus();
                }
                else
                {
                    document.getElementById('ErrorSpan').innerHTML="";
                }
            }
          }
        xmlhttp.open("GET","checkUserName.php?q="+UserName.value,true);
        xmlhttp.send();
    }
}

並創建一個名稱為checkusername.php的php文件,並通過查詢字符串傳遞您的值。

php代碼如下。

<?php
$q=$_GET["q"];
include("db_connect.php");

$sql="select * from usermaster where UserName='".$q."'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
  {
    echo $row['UserName'];
  }
mysql_close($con);

?>

如果用戶名找到它,它將從php返回值,您可以在javascript函數中獲取值。 希望對您有幫助。

您也可以使用此方法我在keyup上選中它,可以通過onblur選項使用它。

  <input  type="text"  value="" id="jform_domain_name" name="jform[domain_name]"   onkeyup="checkAvailability();"/>

<div id="errormsg" class="no-display">Sorry, this name is not available!</div>
<div id="successmsg" class="no-display">Congratulations, this domain is available!</div>
 <script>
 function checkAvailability(){

    jQuery('#ajaxloader').html('<img src="images/ajax-loader.gif" />');
    var string = jQuery('#jform_domain_name').val();
    if(string == ''){
        jQuery('#ajaxloader').html('');
        return false;   
    }


    jQuery.ajax({
            type : "POST"
            ,url : "YOUR_ACTION_URL"
            ,data :"string="+jQuery('#jform_domain_name').val()

            ,success : function(data){               
                if(data==0){
                    var errormsg = jQuery("#errormsg").html();
                    jQuery("#ajaxloader").show();
                jQuery('#ajaxloader').html(errormsg);
            }else{
                var successmsg = jQuery("#successmsg").html();
                jQuery("#ajaxloader").show();
                jQuery('#ajaxloader').html(successmsg);
            }

        }
    ,complete : function(){

         if( jQuery('#jform_domain_name').val() == "" ) {
                jQuery("#ajaxloader").hide();
            }
        }
            ,beforeSend: function(html){
                jQuery("#ajaxloader").show();
                jQuery('#ajaxloader').html('<img style="padding-top:6px;" src="images/ajax-loader.gif" />');
            return;
        }
        });
}
 </script>

供參考,我提供了我的控制器動作和所使用的模型

//sample controller action 
 function checkdomain(){
       $requestData = JRequest::get();
    $return = $model->checkAvailabiLity($requestData['string']);

    if($return === false){
        echo 0;
    }else{
        echo 1;
    }
    die;
} 
//sample model on which I created Query logic.
   public function checkAvailabiLity($data){
    $select = "SELECT id FROM #__jshopping_vendors WHERE domain_name = '".strtolower($data)."' AND user_id != ".$user->id."";
    $db->setQuery($select);
    $type = $db->loadObject();

    if(isset($type->id) && $type->id >0){
        return false;
    }else{
        return true;
    }
}

希望這可以幫助....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM