2016-07-02 14 views
0

ich folgenden Code mit dem Formular durchEinreichen Ajax-Form zeigt alle php isset Aussagen

Ajax senden
<script> 
$(document).ready(function(){ 

    $("#update-settings").submit(function(e) { 

     var url = "files/jquery-pages/page_jquery_settings.php"; // the script where you handle the form input. 

     $.ajax({ 
      type: "POST", 
      url: url, 
      data: $("#update-settings").serialize(), // serializes the form's elements. 
      success: function(data) 
      { 
       $("#success-settings").hide().html(data).fadeIn('slow'); 
      } 
     }); 
     e.preventDefault(); // avoid to execute the actual submit of the form. 
    }); 

}); 
</script> 

<div id="success-settings"></div> 

und das funktioniert so weit in Ordnung.

Meine PHP-Seite ist wie folgt Loking:

<?php    
    if(isset($_POST['change_password']) == $settings_btn_change_password) 
    {  
     echo "The password has been changed"; 
    } 

    if(isset($_POST['update_email']) == $settings_btn_update_email) 
    {  
     echo "This is email update"; 
    } 
?> 

Hier ist die Form:

<form method="post" action="" name="update-settings" id="update-settings"> 
    <div class="row"> 
     <div class="col-md-12"> 
      <input type="submit" value="<?php echo $settings_btn_change_password;?>" name="change_password" class="button_blue_standard pull-right"> 
     </div> 
    </div> 

    <div class="row"> 
     <div class="col-md-12"> 
      <input type="submit" value="<?php echo $settings_btn_update_email;?>" name="update_email" class="button_blue_standard pull-right"> 
     </div> 
    </div> 
</form> 

Das Problem ist, wenn ich einreichen getroffen Taste change_password Beispiel es ist die Anzeige sowohl „Das Passwort hat wurde geändert "und" Dies ist E-Mail-Update ".

Ich möchte nur zeigen "Das Passwort wurde geändert", wenn ich diesen Knopf gedrückt habe.

Irgendwelche Ideen warum?

Cheerz :)

+0

Ich denke Problem auf Ihrem HTML-Formular Schaltfläche change_password ist und update_email value, vielleicht haben sie beim Einreichen immer einen Wert, bitte mehr HTML-Code. –

+0

Versuchen Sie '! Empty ($ _ POST ['change_password'])' nur in der Bedingung – guradio

+0

Haben Sie diese '$ settings_btn_ *' vars in der 'files/jquery-pages/page_jquery_settings.php' Datei definiert? – Chay22

Antwort

0

isset nicht mit == arbeiten. Also benutze das so.

<?php 
    if(isset($_POST['change_password'])) 
    {  
     echo "The password has been changed"; 
    } 

    if(isset($_POST['update_email'])) 
    { 
     echo "This is email update"; 
    } 

?> 
+0

Mit '&&' könnte meiner Meinung nach besser sein. – Chay22

+0

Wenn Sie '&&' verwenden, wird der Fehler angezeigt, wenn '_set ($ _ POST ['change_password'])' condition false ist. – Mani

+0

Der Versuch, diesen Code zu verwenden, aber leider passiert gar nichts: S ich bekomme jetzt nichts angezeigt. – Mensur

0

versuchen diese

<?php 
    if((isset($_POST['change_password'])) && ($settings_btn_change_password==$_POST['change_password'])) 
    { 
     echo "The password has been changed"; 
    } 
    if((isset($_POST['update_email'])) && ($settings_btn_update_email==$_POST['update_email'])) 
    { 
     echo "This is email update"; 
    } 
?> 

ich es hoffe, hilfreich sein wird

+0

Dies funktioniert überhaupt nicht – Mensur

0

Bitte verwenden Sie 'exit;' nach jeder Echo-Aussage. So sollte es so aussehen: -

<?php 
    if(isset($_POST['change_password']) == $settings_btn_change_password) 
    {  
     echo "The password has been changed"; 
     exit; 
    } 

    if(isset($_POST['update_email']) == $settings_btn_update_email) 
    {  
     echo "This is email update"; 
     exit; 
    } 
?> 
+0

Hi, Dieser zeigt nur den ersten isetset an Wenn ich auf den zweiten Knopf klicke zeigt er immer noch die Ergebnisse des ersten isset an – Mensur

+0

Bitte überprüfen Sie die Werte von $ settings_btn_update_email und $ settings_btn_change_password sollte nicht wie 0 oder 1 sein – EnthuOns

0

ich bei der Arbeit bin, also Zeit, die ich nicht haben, dies zu testen, aber versuchen:

if(isset($_POST['change_password']) && $_POST['change_password'] == $settings_btn_change_password) { 
    echo "The password has been changed"; 
    exit(); 
} else if(isset($_POST['update_email']) && $_POST['update_email'] == $settings_btn_update_email) { 
    echo "This is an email update"; 
    exit(); 
} else { 
    echo "Action not successfully carried out, try again"; 
    error_log("There's an issue here, check it out"); 
} 
+0

Danke buddy .. Die Ausgabe ist: Aktion nicht erfolgreich ausgeführt, versuchen Sie es erneut – Mensur

+0

Okay, geben Sie mir eine Minute zu testen – DanielTheGeek