Сбой формы PHP повторно заполнить

Im Переполнение формы через PHP Post Команды.
Все отлично работает, данные отправляются и принимаются отлично, но всякий раз, когда я проверяю, $_POST[Ticket] == 2 это считается true даже если эхо $_POST[Ticket] повторяет 1 или что-нибудь, кроме 2 …

вот мой код:

echo '<select title="Ticket" name="Ticket" required>';
echo '<option disabled selected value>Art des Tickets</option>';
echo '<option value="1"';
if ($_POST['Ticket'] == "1") echo 'selected="selected"';
echo '>Gamer</option><option value="2"';
if ($_POST['Ticket'] == "2") echo 'selected="selected"';
echo '>Zuschauer</option></select>';

if ($_POST[Ticket] == 2)
{
echo '<div class="FormError">Als Zuschauer kannst du leider nur beim Auf- oder Abbau helfen, nicht jedoch bei beidem, bitte ändere deine Auswahl.</div>';
}

Я только что понял, что эта часть не работает, но вышеприведенная часть начала работать после добавления улучшений, упомянутых ниже …

if (isset($_POST["submit"]) && $_POST["Ticket"] == 2)
{
echo '<div class="FormError">Als Zuschauer kannst du leider nur beim Auf- oder Abbau helfen, nicht jedoch bei beidem, bitte ändere deine Auswahl.</div>';
}

if ($AHelfer < $Veranstaltung->AHelfer or $BHelfer < $Veranstaltung->BHelfer)
{
echo '<select ';
if (isset($_POST["submit"]) && $_POST["Ticket"] == 2) echo 'class="FormError"';
echo ' title="Hilfe" name="Hilfe" required>';
echo '<option disabled selected value>Ich helfe...</option>';
if ($AHelfer < $Veranstaltung->AHelfer)
{
echo '<option value="1"';
if (!empty($_POST["submit"]) && $_POST["Ticket"] == 1) {echo 'selected="selected"'; }
echo '>...beim Aufbau (5€ Rabatt)</option>';
}
if ($BHelfer < $Veranstaltung->BHelfer)
{
echo '<option value="2"';
if (!empty($_POST["submit"]) && $_POST["Ticket"] == 2) {echo 'selected="selected"'; }
echo '>...beim Abbau (5€ Rabatt)</option>';
}
if ($AHelfer < $Veranstaltung->AHelfer && $BHelfer < $Veranstaltung->BHelfer)
{
echo '<option value="3"';
if (!empty($_POST["submit"]) && $_POST["Ticket"] == 3) {echo 'selected="selected"'; }
echo '>...beim Auf- und Abbau (10€ Rabatt)</option>';
}
echo '<option value="4"';
if (!empty($_POST["submit"]) && $_POST["Ticket"] == 4) {echo 'selected="selected"'; }
echo '>...Nicht (Kein Rabatt)</option>';
echo '</select>';
}
echo $_POST[Hilfe];

0

Решение

Попробуйте, я немного переписал ваш код, чтобы он был читабельным. Меня устраивает. Вам нужно добавить одинарные или двойные кавычки вокруг Ticket в состоянии:

<form method="post" action="">
<select title="Ticket" name="Ticket" required>
<option disabled selected value>Art des Tickets</option>
<option value="1" <?php if (!empty($_POST["submit"]) && $_POST["Ticket"] == 1) {echo 'selected="selected"'; } ?>>Gamer</option>
<option value="2" <?php if (!empty($_POST["submit"]) && $_POST["Ticket"] == 2) {echo 'selected="selected"'; } ?>>Zuschauer</option>
</select>
<input type="submit" name="submit" value="send">
</form>

<?php
if (isset($_POST["submit"]) && $_POST["Ticket"] == 2) {
?>
<div class="FormError">Als Zuschauer kannst du leider nur beim Auf- oder Abbau helfen, nicht jedoch bei beidem, bitte ändere deine Auswahl.</div>
<?php
}
?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]