2015-04-15 2 views
0

Я пытаюсь изменить класс кнопки, если условие не выполнено, и это 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> 
+0

Если код PHP ниже 'button', он будет работать. Если код находится над 'button', элемент с id' submit' не существует, и вы увидите ошибку в консоли. – panther

+0

Оператор if должен быть выше моего html для того, чтобы мой скрипт работал, нет ли другого способа изменить этот класс? – Andrew

+0

Отображение сценария для изменения класса кнопки ** действительно ** дерьмово (и я уверен, что он не будет работать должным образом), вы должны рассмотреть способ, которым @OndraTom предлагает в своем ответе. – Blackus

ответ

1

Сначала необходимо инициализировать переменную класса.

$buttonClass = 'btn btn-primary'; 

И если ваши условия выполнены, вы можете его изменить.

if(isset($_POST['name']) && $_POST['name'] != ""){ 
... 
    if(strlen($username) < 5) 
    { 
    $buttonClass .= ' disabled'; 
    } 
} 

А затем распечатайте его в формате HTML.

<button type="submit" class="<?php echo $buttonClass ?>" id = "submit" >Submit</button> 
+0

Я изменил его, как вы написали, но он все еще не работает. – Andrew

+0

У вас есть PHP и HTML в одном файле? Можете ли вы описать свою файловую структуру немного или показать весь код? Как выглядит строка с кнопкой (HTML) прямо сейчас? – OndraTom

+0

Я отредактировал сообщение с точным кодом – Andrew

Смежные вопросы