2017-04-01 3 views
7

funktioniert ich mehrere haben einreichen Eingänge (Tasten) auf einer Seite mit den folgenden isset Bedingungen:if/elseif `isset` mehrere Eingaben einreichen nicht

if (isset($_POST[ 'noranTelChecks' ])) { // user requested noranTelCheck sheet 
    header('location: noranTelChecks.php'); 

    } elseif (isset($_POST[ 'juniperChecks' ])) { // user requested noranTelCheck sheet 
    header('location: juniperChecks.php'); 

    } elseif (isset($_POST[ 'mpr95001Checks' ])) { // user requested noranTelCheck sheet 
    header('location: mpr95001Checks.php'); 
} // close IF 

Aber egal, welche Taste, um die Seite geklickt wird wird immer auf den Link umgeleitet, auf den sich der erste IF bezieht. Wenn ich die Reihenfolge der Links ändere, auf die verwiesen wird, ist es immer der Link in der ersten Bedingung, zu der die Seite umgeleitet wird.

Was könnte das Problem mit dem oben genannten Code sein, der dieses Problem verursacht, wie ich dies in der Vergangenheit auf anderen Seiten getan habe und es hat gut funktioniert?

+1

Überprüfen Sie Ihre '$ _POST' in allen Fällen –

+0

Während ich weiß nicht, was die Ursache ist, könnten Sie versuchen, eine Variable für die Zielregion zu verwenden (' $ location') in deinem if/elseif, dann führe einfach einen einzigen Aufruf von 'header ('location:'. $ location);' außerhalb davon aus - hilft das vielleicht irgendwie? – domsson

+1

Geben Sie Ihrer Eingabeschaltfläche einen Namen? Nur die angeklickte Eingabe sollte gesendet werden, wenn Sie einen Namen angeben. Siehe Antwort hier http://stackoverflow.com/questions/11929471/how-doi-i-use-two-submit-buttons-and-differentiate-between-which-one-was-used-to – Incognito

Antwort

1

Ich denke, Ihre Tasten Werte zum Beispiel gesetzt haben

<input type="submit" id="noranTelChecks" name="noranTelChecks" value="Button 1"/> 

so können Sie den Wert anstelle von Namen oder die ID verwenden. Der Code würde wie folgt

if (isset($_POST["Button 1"])) 
{ 
    header('location: noranTelChecks.php'); 
}