2015-11-07 3 views
4

Это моя страница. Я понятия не имею, что случилось. Это так расстраивает, потому что это так просто.Почему мой javascript DOM не работает?

Когда я пытаюсь получить значение, если мои поля ввода ничего не дают. Даже если я предупреждаю перед AJAX, он ничего не пишет. Я скопировал входной вход, который был под моим, и он был точно таким же.

Что случилось?

registration.php:

<?php 
    if(isset($_POST["php_username"]) && isset($_POST["php_password"]) && isset($_POST["php_password2"]) && isset($_POST["php_email"])){ 
     $error = ""; 
     if(strlen($_POST["php_username"]) < 8){ 
      $error = $error."Username has to be at least 8 characters.<br>"; 
     } 
     if(strlen($_POST["php_password"]) < 8){ 
      $error = $error."password has to be at least 8 characters.<br>"; 
     } 
     if(strlen($_POST["php_username"]) > 16){ 
      $error = $error."Username can't be more than 16 characters.<br>"; 
     } 
     if(strlen($_POST["php_password"]) < 16){ 
      $error = $error."Password can't be more than 16 characters.<br>"; 
     } 
     if(strcmp($_POST["php_password"],$_POST["php_password2"])){ 
      $error = $error."Password confirmation falied.<br>"; 
     } 
     echo($error); 

    }else{ 
     echo(' 
      <div id="register-form"> 
       <form> 
        <h2 style="text-decoration: underline; margin-bottom: 10px;">Registration</h2><br><br> 
        Username:<br> 
        <input type="text" maxlength="16" id="username" value="asd" /><br> 
        Password:<br> 
        <input type="password" maxlength="16" id="password" /><br> 
        Confirm password:<br> 
        <input type="password" maxlength="16" id="password2" /><br> 
        E-mail address:<br> 
        <input type="email" id="email" /><br><br> 
        <input type="button" id="registration-submit" value="Signup"><br> 
        <div id="registration-response">       
        </div> 
       </form> 
      </div> 
      <script> 
       $("#registration-submit").click(function(){ 
        var username = document.getElementById("username").value; 
        var password = document.getElementById("password").value; 
        var password2 = document.getElementById("password2").value; 
        var email = document.getElementById("email").value; 

        $.post("registration.php",{ 
         "php_username": username, 
         "php_password": password, 
         "php_password2": password2, 
         "php_email": email 
        }, 
        function(data, status){ 
         $("#registration-response").html(data); 
         $("#registration-response").fadeIn(750); 
        }); 

       }); 
      </script> 
     '); 
    } 
?> 
+2

ли вы включили JQuery? потому что я надеюсь, что это даст вам $ неопределенную ошибку. –

+0

Да, я сделал это на index.php. Эта страница была загружена в div с jquery. На странице нет ошибки javascript. –

+0

поэтому либо включить файл jquery, либо использовать документ во всем мире, чтобы избежать $ –

ответ

0

просто кладете JavaScript вне эхо заявления, а также обернуть его в $(document).ready();

 <?php 
      if(isset($_POST["php_username"]) && isset($_POST["php_password"]) && isset($_POST["php_password2"]) && isset($_POST["php_email"])){ 
       $error = ""; 
       if(strlen($_POST["php_username"]) < 8){ 
        $error = $error."Username has to be at least 8 characters.<br>"; 
       } 
       if(strlen($_POST["php_password"]) < 8){ 
        $error = $error."password has to be at least 8 characters.<br>"; 
       } 
       if(strlen($_POST["php_username"]) > 16){ 
        $error = $error."Username can't be more than 16 characters.<br>"; 
       } 
       if(strlen($_POST["php_password"]) < 16){ 
        $error = $error."Password can't be more than 16 characters.<br>"; 
       } 
       if(strcmp($_POST["php_password"],$_POST["php_password2"])){ 
        $error = $error."Password confirmation falied.<br>"; 
       } 
       echo($error); 

      }else{ 
       echo(' 
        <div id="register-form"> 
         <form> 
          <h2 style="text-decoration: underline; margin-bottom: 10px;">Registration</h2><br><br> 
          Username:<br> 
          <input type="text" maxlength="16" id="username" value="asd" /><br> 
          Password:<br> 
          <input type="password" maxlength="16" id="password" /><br> 
          Confirm password:<br> 
          <input type="password" maxlength="16" id="password2" /><br> 
          E-mail address:<br> 
          <input type="email" id="email" /><br><br> 
          <input type="button" id="registration-submit" value="Signup"><br> 
          <div id="registration-response">       
          </div> 
         </form> 
        </div>'); 


    <script> 

    $(document).ready(function(){ 
    $("#registration-submit").click(function(){ 
     var username = document.getElementById("username").value; 
     var password = document.getElementById("password").value; 
     var password2 = document.getElementById("password2").value; 
     var email = document.getElementById("email").value; 

     $.post("registration.php",{ 
      "php_username": username, 
      "php_password": password, 
      "php_password2": password2, 
      "php_email": email 
      }, 
     function(data, status){ 
      $("#registration-response").html(data); 
      $("#registration-response").fadeIn(750); 
      }); 

      }); 
     });      

    </script> 

      } 
     ?> 
+0

Я понятия не имею, почему это должно измениться. $ (document) .redy() не требуется, так как мой скрипт после html. Снаружи или вложенных php то же самое, почему это имеет значение? –

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