2017-01-15 3 views
-2

Ich kann nicht herausfinden, warum meine Ajax-Form nicht funktioniert, ich kratze mich seit einiger Zeit am Kopf. Um es ein bisschen einfacher zu machen, ist mein JavaScript-Code im Bereich Passwort vergessen. Die Konsole gibt nichts aus und die Seite wird auch nicht aktualisiert, also weiß ich nicht, was los ist? Das Ergebnis soll im <p id="msg"><p/> angezeigt werden.Mein Ajax-Formular funktioniert nicht

login2.php Code:

<?php 

$data = array(); 
if(isset($_POST['email'])){ 
$data = $_POST['email'];  
echo json_encode($data); 
die();  
} 
?> 
<!DOCTYPE html> 
<html lang="en"> 
    <!--[if IE 9 ]><html class="ie9"><![endif]--> 
    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <title>Sign In</title> 

     <!-- Vendors --> 

     <!-- Animate CSS --> 
     <link href="vendors/bower_components/animate.css/animate.min.css" rel="stylesheet"> 

     <!-- Material Design Icons --> 
     <link href="vendors/bower_components/material-design-iconic-font/dist/css/material-design-iconic-font.min.css" rel="stylesheet"> 
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
     <!-- Site CSS --> 
     <link href="css/app-1.min.css" rel="stylesheet"> 
    <script src='/google_analytics_auto.js'></script></head> 

    <body> 
     <div class="login"> 

      <!-- Login --> 
      <div class="login__block toggled" id="l-login"> 
       <div class="login__block__header"> 
        <i class="zmdi zmdi-account-circle"></i> 
        Hi there! Please Sign in 

        <div class="actions login__block__actions"> 
         <div class="dropdown"> 
          <a href="" data-toggle="dropdown"><i class="zmdi zmdi-more-vert"></i></a> 

          <ul class="dropdown-menu pull-right"> 
           <li><a data-block="#l-register" href="">Create an account</a></li> 
           <li><a data-block="#l-forget-password" href="">Forgot password?</a></li> 
          </ul> 
         </div> 
        </div> 
       </div> 

       <div class="login__block__body"> 
        <div class="form-group form-group--float form-group--centered form-group--centered"> 
         <input type="text" class="form-control"> 
         <label>Email Address</label> 
         <i class="form-group__bar"></i> 
        </div> 

        <div class="form-group form-group--float form-group--centered form-group--centered"> 
         <input type="password" class="form-control"> 
         <label>Password</label> 
         <i class="form-group__bar"></i> 
        </div> 

        <button class="btn btn--light btn--icon m-t-15"><i class="zmdi zmdi-long-arrow-right"></i></button> 
       </div> 
      </div> 


      <!-- Forgot Password --> 
      <div class="login__block" id="l-forget-password"> 
       <div class="login__block__header palette-Purple bg"> 
        <i class="zmdi zmdi-account-circle"></i> 
        Forgot Password? 

        <div class="actions login__block__actions"> 
         <div class="dropdown"> 
          <a href="" data-toggle="dropdown"><i class="zmdi zmdi-more-vert"></i></a> 

          <ul class="dropdown-menu pull-right"> 
           <li><a data-block="#l-login" href="">Already have an account?</a></li> 
           <li><a data-block="#l-register" href="">Create an account</a></li> 
          </ul> 
         </div> 
        </div> 
       </div> 

       <div class="login__block__body"> 
       <form> 
        <p class="m-t-30">Lorem ipsum dolor fringilla enim feugiat commodo sed ac lacus.</p> 

        <div class="form-group form-group--float form-group--centered"> 
         <input type="text" class="form-control" id="emailfield"> 
         <label>Email Address</label> 
         <i class="form-group__bar"></i> 
         </form> 
         <p id="msg"><p/> 
        </div> 
        <button class="btn btn--light btn--icon m-t-15" value="submit" type="submit"><i class="zmdi zmdi-check"></i></button> 
       </div> 
      </div> 
      <script type = "text/javascript"> 

    $("form").on("submit", function(e){ 

     e.preventDefault(); 
     var emailfield = $("#emailfield").val(); 
     var email ='email='+ emailfield; 

     $.ajax({ 
      url: "login2.php", 
      method: "POST", 
      dataType: "json", 
      data: {email: email}, 
      success: function (result) { 
       alert("result: " + result); 
       console.log(result); 
       $("#msg").html(result); 
      } 
     }); 
    }); 

</script> 
     </div> 

     <!-- Older IE Warning --> 
     <!--[if lt IE 9]> 
      <div class="ie-warning"> 
       <h1>Warning!!</h1> 
       <p>You are using an outdated version of Internet Explorer, please upgrade <br/>to any of the following web browsers to access this website.</p> 
       <div class="ie-warning__container"> 
        <ul class="ie-warning__download"> 
         <li> 
          <a href="http://www.google.com/chrome/"> 
           <img src="img/browsers/chrome.png" alt=""> 
           <div>Chrome</div> 
          </a> 
         </li> 
         <li> 
          <a href="https://www.mozilla.org/en-US/firefox/new/"> 
           <img src="img/browsers/firefox.png" alt=""> 
           <div>Firefox</div> 
          </a> 
         </li> 
         <li> 
          <a href="http://www.opera.com"> 
           <img src="img/browsers/opera.png" alt=""> 
           <div>Opera</div> 
          </a> 
         </li> 
         <li> 
          <a href="https://www.apple.com/safari/"> 
           <img src="img/browsers/safari.png" alt=""> 
           <div>Safari</div> 
          </a> 
         </li> 
         <li> 
          <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie"> 
           <img src="img/browsers/ie.png" alt=""> 
           <div>IE (New)</div> 
          </a> 
         </li> 
        </ul> 
       </div> 
       <p>Sorry for the inconvenience!</p> 
      </div> 
     <![endif]--> 


     <!-- Javascript Libraries --> 

     <!-- jQuery --> 
     <script src="vendors/bower_components/jquery/dist/jquery.min.js"></script> 

     <!-- Bootstrap --> 
     <script src="vendors/bower_components/bootstrap/dist/js/bootstrap.min.js"></script> 

     <!-- Placeholder for IE9 --> 
     <!--[if IE 9 ]> 
      <script src="vendors/bower_components/jquery-placeholder/jquery.placeholder.min.js"></script> 
     <![endif]--> 

     <!-- Site Functions & Actions --> 
     <script src="js/app.min.js"></script> 
    </body> 
</html> 
+1

Wie wäre es Ihnen, diese Frage verengen zuerst nach unten durch die Schaffung eines [MCVE] – Xorifelse

+0

Verwendung JSON.stringify (E-Mail) –

+0

I Beispielcode eingefügt bitte versuchen Sie es Wenn es nicht funktioniert, teilen Sie bitte auch die Details auf der Registerkarte Netzwerk mit. –

Antwort

-1

Verwenden eines entweder json oder normalen key = value

Also hier in AJAX

data: email, 

Rückgabetyp json ist so sollte es sein Json nicht String ohne Schlüssel wird es nur String mit Anführungszeichen in. PHP zurückgeben.

Entfernen Sie entweder dataType: "json", von Ajax und geben Sie den String als .php-Rückgabewert zurück. Oder gehören key in json_encode

als json Änderung zurückzukehren hier

$data["email"] = $_POST['email']; 
+0

Arbeitete perfekt, entschied ich mich dafür, es als json stattdessen zurückzugeben! – jake

+0

Darf ich fragen, warum es es als ein Objekt zurückgibt? – jake

+0

Weil Sie früh zu Ajax gesagt haben, dass Rückgabewert Json-Objekt sein wird durch 'dataType:" json "' Wenn Sie diese Zeile nicht schreiben, ist der Standardwert string type. – C2486

0
please try this and open Network Tab to see if request is going correctly and your backend is getting hit with this call . 

    $("form").on("submit", function(e){ 

    e.preventDefault(); 
    var emailfield = $("#emailfield").val(); 
    var email ='email='+ emailfield; 


    $.ajax({ 
     url: "login2.php", 
     method: "POST", 
     dataType: "json", 
     data: JSON.stringify(email), 
     success: function (result) { 
      alert("result: " + result); 
      console.log(result); 
      $("#msg").html(result); 
     } 
    }); 
}); 
+0

Kein Unterschied. – jake

+0

ok Kannst du Netzwerk-Tab sehen, wenn du den Server tatsächlich postest? –

+0

Versuchen Sie bitte auch dies JSON.stringify (emailfield). Ich vertippte es, um in meiner Antwort –