2017-02-06 3 views
0

Ich erstelle ein PHP-Formular für eine RSVP, und ich versuche, mehrere $ _POST zu 1 isetset Variable zu deklarieren, aber ich bekomme immer Fehler in meinem Code, das ist, was ich versuche tun: SoPHP mehrere Isset-Deklaration

$attendance = isset($_POST['template-contactform-event']) ? $_POST['template-contactform-event'] : ''; 

    $guestname1 = isset($_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']) ? $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] : ''; 

mein Fehler auftritt auf der zweiten Erklärung Zeile $ guestname1 ich seine denken, weil der zweite Koma nach dem isset, aber ich bin nicht sicher, wie ich das erklären würde? Die erste Zeile ($ Teilnahme) ist, was ich versuche zu erreichen, aber mit zwei $ _POST für 1 Variable.

+0

Was ist Ihre Fehlermeldung? Versuchen Sie auch nicht, während des Debuggens ternär zu verwenden, Sie können danach immer ein ternäres schreiben – fpietka

Antwort

2

Während isset() mehrere Parameter annehmen kann, kann die integrierte iif() nicht.

Versuchen Sie dies stattdessen, verkettete ich die beiden Parameter.

<?php 

$attendance = isset($_POST['template-contactform-event']) ? $_POST['template-contactform-event'] : ''; 

$guestname1 = isset($_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']) ? 
       $_POST['template-contactform-guestname1'].' '.$_POST['template-contactform-guestname1r'] : ''; 
+0

Danke für Ihre Hilfe, das hat für mich funktioniert! Als Antwort wurde das Beispiel übermittelt, das funktioniert. – BoneStarr

2

Die erste Aussage ist richtig. Aber die zweite hat einen Fehler mit dem zweiten Komma.

Wenn Sie einen Blick eine der Art und Weise ternären nehmen sollen gebaut werden:

$val = my_test?result_if_true:result_if_false;

Sie isset($_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']) tun können, weil es einen boolean zurück.

Aber nicht schreiben: $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] hat das zweite Argument. Weil Ternär nicht dieses Komma erwartet.

Wenn Sie mehr Informationen möchte ich habe diesen Artikel gefunden https://davidwalsh.name/php-shorthand-if-else-ternary-operators

+0

Danke dafür +! – BoneStarr

1

Sie zuweisen 2 Werte einer Variablen, die nicht funktioniert, müssen Sie ein Array verwenden.

Und auch isset() ist nicht die Art und Weise zu überprüfen, ob ein Benutzer Wert in ein Formular eingegeben hat, denn wenn ein Benutzer ein leeres Formular sendet dann isset($_POST['smth']) true zurück, weil die Indizes vorhanden ist, in den superglobalen $_POST und seine Wert wird auf eine leere Zeichenfolge festgelegt. Verwenden Sie stattdessen empty() und ein Array zum Speichern von 2 Werten.

+0

Danke für diese +1 – BoneStarr