我基本上是在尝试创建一个小型注册表单。如果已经使用了用户名,我想添加'red'类,如果不是'green'。
这里的PHP工作正常,并返回“是”或“否”以确定它是否正常。
CSS:
input {
border:1px solid #ccc;
}
.red {
border:1px solid #c00;
}
.green {
border:1px solid green;
background:#afdfaf;
}
我正在使用的Javascript是:
$("#username").change(function() {
var value = $("#username").val();
if(value!= '') {
$.post("check.php", {
value: value
}, function(data){
$("#test").html(data);
if(data=='YES') {
$("#username").removeClass('red').addClass('green');
} if(data=='NO') {
$("#username").removeClass('green').addClass('red');
}
});
}
});
我已经获得了document.ready的东西......一切正常,因为#test div html变为“YES”或“NO”,除了最后一部分,我检查了什么值数据是。这是php:
$value=$_POST['value'];
if ($value!="") {
$sql="select * FROM users WHERE username='".$value."'";
$query = mysql_query($sql) or die ("Could not match data because ".mysql_error());
$num_rows = mysql_num_rows($query);
if ($num_rows > 0) {
echo "NO";
} else {
echo "YES";
}
}
答案 0 :(得分:0)
尝试这个
if(data=='YES')
{
$("#username").attr('style','').attr('style', 'border:1px solid green;background:#afdfaf;');
}
else
{
$("#username").attr('style','').attr('style', 'border:1px solid #c00;');
}
让我知道它是否有效。
答案 1 :(得分:0)
@Jimmy - 班级改变不会发生。
@Gaurav - 使用您的代码,边框会发生变化但总是设置为红色,无论数据是“是”还是“否”。
检查数据一定是必须的吗?但我不明白......
答案 2 :(得分:0)
以下是我认为您应该如何实现功能的基本示例。代码几乎是不言自明的,但可以随意询问是否有任何不清楚的地方。
<?php
function readArray( $arr, $key, $default ='' ) { return isset($arr[$key]) ? $arr[$key] : $default ; }
function error( $message ){ echo "{ result: false, message: \"$message\" }"; exit; }
function success( $isFound ){ echo "{ result: true, exists: " . ($isFound?'true':'false') . "}" ; exit; }
if( sizeof( $_POST ) ) {
$value = readArray( $_POST, "value", false ) ;
if( false === $value ) error( "Empty username" ) ;
@$db = mysql_connect("localhost","root","") ;
if( !$db ) error( "Can't connect to database" ) ;
@$result = mysql_select_db( "mysql" ) ;
if( !$result ) error( "Can't select database" ) ;
$query = "SELECT COUNT(User) as count FROM user WHERE User='" . mysql_real_escape_string( $value ) . "'";
@$result = mysql_query( $query ) ;
if( !$result ) error( "Can't execute query: " . mysql_error() ) ;
success( readArray( mysql_fetch_assoc( $result ), "count" ) > 0 ) ;
}
?>
<script src="jquery.js" />
<style><![CDATA[
input {
border:1px solid #ccc;
}
input.red {
border:1px solid #c00;
}
input.green {
border:1px solid #0c0;
}
]]></style>
<script>
$(document).ready(function(){
var updateStyle = function() {
var value = $("#username").val() ;
if( !value ) return ;
$.post("", {
value: value
}, function(data){
var obj = eval( "(" + data + ")" ) ;
if( obj.result ) {
if( obj.exists ) {
$("#username").addClass('red');
$("#test").html( "User already exists" ) ;
} else {
$("#username").addClass('green');
$("#test").html( "Username available" ) ;
}
} else {
$("#test").html( obj.message ) ;
}
});
}
var timeout ;
$("#username").keydown(function() {
$("#test").html("") ;
$("#username").attr("class", "") ;
clearTimeout( timeout ) ;
timeout = setTimeout( updateStyle, 500 ) ;
});
});
</script>
<input id="username" name="username" value="" />
<div id="test"></div>