文本类型输入元素的默认值

时间:2014-11-02 12:25:54

标签: php jquery html ajax

我正在尝试检查刚刚输入的电子邮件用户是否在数据库中,并显示message.its正常工作。但是当我删除输入的值并关注时,则会显示其他选项。但我不想再显示。这是我的代码-ajax

<script>
$(document).ready(function(){

  $("#email").focusout(function(){
  var emailVal = $('#email').val();
    $.ajax({
        type: 'post',
        url: 'check_email.php',
        data:  { 
         myparam:emailVal //set it with a parameter name
      },


        success: function( data ) {
        alert(data);
        if(data==1){
        document.getElementById('email_check').innerHTML="<p style='color:red;'>The email you have entered is already exist!</p>";
           }
            if(data==0){
            document.getElementById('email_check').innerHTML="<p style='color:green;'>The email you have entered is available!</p>";}
        }
    });
  });
});


</script>

这是我的check_email.php文件,

      <?php          
require_once("connnection.php"); 
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();

}

if (isset($_POST['myparam'])){
$email=mysqli_real_escape_string($con,$_POST['myparam']);
$sql = "SELECT * FROM user WHERE email='$email'";
$select=mysqli_query($con,$sql) or die("fail");
$row = mysqli_num_rows($select);

if ($row >0) {

    echo 1;
}else {

echo 0;
}
else
echo "post error";                                

删除输入的值并关注(单击其他位置)后,会发生以下情况,使用警报(数据)我从服务器获取0作为数据。怎么会发生这种情况。如果文本字段中没有值,它是如何输入到php文件中的sql查询段的。是否有任何默认值或在场景后面传递的东西?请解释?

2 个答案:

答案 0 :(得分:0)

只需检查emailVal的值是否存在。试试这个

$(document).ready(function(){
    $("#email").focusout(function(){
        var emailVal = $('#email').val();
        if($.trim(emailVal)){ //Added the new condition
            $.ajax({
                type: 'post',
                url: 'check_email.php',
                data:  {
                    myparam:emailVal //set it with a parameter name
                },
                success: function( data ) {
                    alert(data);
                    if(data==1){
                        document.getElementById('email_check').innerHTML="<p style='color:red;'>The email you have entered is already exist!</p>";
                    }
                    if(data==0){
                        document.getElementById('email_check').innerHTML="<p style='color:green;'>The email you have entered is available!</p>";}
                }
            });
        }else{ //If empty then nothing will be shown
            $('#email_check').html('');
        }

    });
});

答案 1 :(得分:0)

如果文本字段中没有值,则会发送

myparam:“”

然后检查是否有一个带有“”的电子邮件地址,并返回0。

在执行php调用之前,只需检查文本字段是否为空即可。