我正在尝试检查刚刚输入的电子邮件用户是否在数据库中,并显示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查询段的。是否有任何默认值或在场景后面传递的东西?请解释?
答案 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调用之前,只需检查文本字段是否为空即可。