Итак, в школе мы изучаем ООП на PHP, и для нашего задания нам нужно использовать 2 формы. это первый раз, когда я использую 2 формы на одной странице, и я пытаюсь выяснить, как проверить, какая форма отправляется, и создать соответствующий объект. Видимо, афер, смотрящий на некоторые другие вопросы, просто используя if (!empty($_POST['SubmitButtonName']))
, должен работать, но это не так. Надежда кто-то может помочь мне и сказать мне, что я делаю неправильно :)PHP две формы, одна страница
PHP:
if (!empty($_POST['sportwgn']))
{
try
{
$sport->Merk = $_POST['merk'];
$sport->AantalPassagiers = $_POST['AantalPassagiers'];
$sport->AantalDeuren = $_POST['AantalDeuren'];
$sport->Stereo = isset($_POST['stereo']) ? true : false;
$sport->Save();
$succes= "Uw sportwagen is gereserveerd!";
}
catch(Exception $e)
{
$error = $e->getMessage();
}
}
if (!empty($_POST['vrachtwgn']))
{
try
{
$vracht->Merk = $_POST['merk'];
$vracht->AantalPassagiers = $_POST['AantalPassagiers'];
$vracht->AantalDeuren = $_POST['AantalDeuren'];
$vracht->MaxLast = $_POST['MaxLast'];
$vracht->Save();
$succes= "Uw vrachtwagen is gereserveerd!";
}
catch(Exception $e)
{
$error = $e->getMessage();
}
}
Формы:
<form action="" method="post">
<label for="merk">merk</label>
<input type="text" id="merk" name="merk">
<br>
<label for="AantalPassagiers">Aantal passagiers</label>
<input type="number" min="2" max="4" id="AantalPassagiers" name="AantalPassagiers">
<br>
<label for="AantalDeuren">Aantal deuren</label>
<input type="number" min="1" max="5" id="AantalDeuren" name="AantalDeuren">
<br>
<label for="stereo">Stereo?</label>
<input type="checkbox" name="stereo" id="stereo" value="stereo"><br>
<br></div><div class="box">
<button type="submit" name="sportwgn">Reserveer</button></div>
</form>
</div>
</div>
<div id="container">
<h1 class="box">Reserveer een Vrachtwagen!</h1>
<div id="content">
<form action="" method="post">
<label for="merk">merk</label>
<input type="text" id="merk" name="merk">
<br>
<label for="AantalPassagiers">Aantal passagiers</label>
<input type="number" min="2" max="4" id="AantalPassagiers" name="AantalPassagiers">
<br>
<label for="AantalDeuren">Aantal deuren</label>
<input type="number" min="1" max="5" id="AantalDeuren" name="AantalDeuren">
<br>
<label for="MaxLast">Max last</label>
<input type="number" min="1" max="5" id="MaxLast" name="MaxLast"><br>
<br></div><div class="box">
<button type="submit" name="vrachtwgn">Reserveer</button></div>
</form>
Вы можете добавить скрытое поле для каждой формы и проверить, существует ли это поле в массиве $ _POST, чем вы знаете, какая форма была отправлена; – Zaki
Что именно не работает. Какую линию он получает. Я предполагаю, что в реальном коде у вас есть закрывающий тег для второй формы –
if (isset ($ _ POST ['sportwgn'])) { –