Я пытаюсь изменить класс кнопки, если условие не выполнено, и это if(strlen($username) < 5)
затем изменить класс кнопки .Это мой PHP:Как изменить класс элемента в тегах php?
<?php $buttonClass = 'btn btn-primary'; ?>
<?php
if(isset($_POST['name']) && $_POST['name'] != ""){
$username = preg_replace('#[^a-z0-9]#i', '', $_POST['name']);
$quer = "SELECT * FROM users WHERE username = '$username'";
$resu = mysqli_query($dbc,$quer);
$check = mysqli_num_rows($resu);
if(strlen($username) < 5){
echo '<span class = "glyphicon glyphicon-remove" style = "color:red"> Trebuie sa introduci mai mult de 4 caractere </span>';
$buttonClass .= ' disabled';
exit();
}
if(is_numeric($username[0])){
echo '<span class = "glyphicon glyphicon-remove" style = "color:red"> Primul caracter trebuie sa fie o litera </span>';
exit();
}
if($check < 1){
echo '<span class = "glyphicon glyphicon-ok" style = "color:green"> ' . $username . ' este valabil</span>';
exit();
}else{
echo '<span class = "glyphicon glyphicon-remove" style = "color:red"> Acest username este deja luat </span>';
exit();
}
}
?>
<script type="text/javascript" language = "javascript">
function checkUsername() {
var status = document.getElementById("usernamestatus");
var u = document.getElementById("username").value;
if(u != "")
{
status.innerHTML = 'Se verifica...';
var hr = new XMLHttpRequest();
hr.open("POST","register.php",true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function(){
if(hr.readyState == 4 && hr.status == 200){
status.innerHTML = hr.responseText;
}
}
var v = "name="+u;
hr.send(v);
}
}
</script>
И это мой HTML:
<div class="form-group">
<label for="username" class="col-lg-2 control-label">Username:</label>
<div class="col-lg-10">
<input type="text" name = "username" class="form-control" id="username" onkeyup="checkUsername()">
<br><div class = "userspan">
<span style = "font-size:15px"id = "usernamestatus"></span>
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="reset" class="btn btn-default">Cancel</button>
<button type="submit" class="<?php echo $buttonClass ?>" id = "submit" >Submit</button>
</div>
</div>
Если код PHP ниже 'button', он будет работать. Если код находится над 'button', элемент с id' submit' не существует, и вы увидите ошибку в консоли. – panther
Оператор if должен быть выше моего html для того, чтобы мой скрипт работал, нет ли другого способа изменить этот класс? – Andrew
Отображение сценария для изменения класса кнопки ** действительно ** дерьмово (и я уверен, что он не будет работать должным образом), вы должны рассмотреть способ, которым @OndraTom предлагает в своем ответе. – Blackus