2017-04-18 4 views
0

Ich brauche Hilfe. Ich muss den Fehler anzeigen, wenn in meinem modalen Fenster etwas schief gelaufen ist. Gerade jetzt, schließt gerade, auch wenn es einen Fehler gibt. Ich habe versucht, etwas Ajax und Javascript zu finden, um das Problem zu lösen, aber ich kann es nicht gut funktionieren. Kann mir jemand helfen und danke für Ihre Hilfe?Fehler im modalen Fenster zeigen, wenn etwas schief gelaufen ist

if($result->num_rows == 0) { 
        $this->errors[] = "User not fund"; 
       }else{ 

Modal Fenster

<!-- Modal -->  
<div class="modal fade" id="resetPassword" role="dialog"> 
<div class="modal-dialog"> 

    <!-- Modal content--> 
    <div style="background-color:#3a3a38;" class="modal-content"> 
    <div class="modal-header"> 
     <h4 style="color:#fff" class="modal-title">Nulstill adgangskode</h4> 
    </div> 
    <div class="modal-body"> 
     <form role="form" action="index.php" method="post"> 
           <div class="form-group"> 
            <label class="sr-only" 
for="email_forgot">Email</label> 
            <input type="text" name="email_forgot" 
placeholder="email..." class="form-username form-control" id="form-username"> 
           </div> 
           <input style="margin-left:auto;margin- 
right:auto;" data-backdrop="static" data-keyboard="false" class="btn-lg btn- 
default btn-block" type="submit" value="send" name="forgot"> 
          </form> 
<?php            

if (isset($user)) { 
if ($user->errors) { 
    foreach ($user->errors as $error) { 
     echo '<a style="color:red">'.$error.'</a>'; 
    } 
} 
if ($user->messages) { 
    foreach ($user->messages as $message) { 
     echo '<span style="color:red">'. $message.'</span>'; 
    } 
} 
} 
?> 
    </div> 

    </div> 

</div> 

+0

Senden Sie das Formular auf der gleichen Seite von Modal? (index.php) –

Antwort

0

das Formular mit Ajax Senden und den Fehler anzuzeigen mit Javascript nicht mit PHP. Jetzt wird Ihre Seite neu geladen und Sie verlieren die Daten.

<script 
    src="https://code.jquery.com/jquery-2.2.4.min.js" 
    integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" 
    crossorigin="anonymous"></script> 



$('form').on('submit', function(event){ 
    event.preventDefault(); 
    var formData = $("form").serializeArray(); 

    $.ajax({ 
    url: "index.php", 
    type: "POST", 
    data: formData, 
    dataType: 'json', 
    success:function(data){ 
     $('body').html('<h1>Thank You</h1>'); 
    }, 
    error:function(){ 
     $('body').html('<h1>Error</h1>'); 
    } 
    }); 
}); 
0

Es gibt zwei verschiedene Möglichkeiten, wenn es um die Veröffentlichung Ihrer Daten geht; Sie könnten die Daten ajax-validieren (, was bedeutet, dass Sie den Inhalt in einer anderen Datei validieren würden), oder Sie würden die Daten senden (), was bedeutet, dass Sie die Daten in einem anderen validieren und verwenden würden Datei).

Ich würde vorschlagen, Ajax-Einreichung, da dies die Bedürfnisse Ihrer Form entsprechen würde.

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 
<script> 

    var $form = $('#resetPassword form'); 

    $form.submit(function(event) { 

     event.preventDefault(); 

     $.ajax({ 

      type: $form.attr('method'), 
      url: $form.attr('action'), 
      data: $form.serialize(), 

      success: function (response) { 

       if(response != "") { 

        alert("Errors: " + response); 

       } else { 

        alert("Password reset!"); 

       } 

      } 
     }); 
    }); 
</script> 

Denn es Sie die Methode Attribut auf dem Formular an eine Verarbeitungsdatei zeigen verwenden müssen, um arbeiten würde, die Sie (zum Beispiel erstellen müssen werden; Ajax-Reset-Passwort. php). In dort nur alle Fehler ausdrucken, wenn es welche gibt. Wenn keine Fehler aufgetreten sind, drucken Sie nichts. Das obige Javascript zeigt die Meldung "Passwort zurücksetzen!".

Verwandte Themen