2015-03-13 2 views
0

Итак, в школе мы изучаем ООП на 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> 
+0

Вы можете добавить скрытое поле для каждой формы и проверить, существует ли это поле в массиве $ _POST, чем вы знаете, какая форма была отправлена; – Zaki

+0

Что именно не работает. Какую линию он получает. Я предполагаю, что в реальном коде у вас есть закрывающий тег для второй формы –

+0

if (isset ($ _ POST ['sportwgn'])) { –

ответ

1

С вашего сообщения формы на той же странице (... action = "" ...) разделите свой код на стороне php на два действия кнопкой отправки. для форм с

<button type="submit" name="sportwgn">Reserveer</button></div> 

использования

if(isset($_POST['sportwgn'])) { 
// your code 
} 

и для

<button type="submit" name="vrachtwgn">Reserveer</button></div> 

использования

if(isset($_POST['vrachtwgn'])) { 
// your code 
} 
+0

Это сработало, должно было подумать об этом ха-ха, но спасибо вам большое! – yoshiMannaert

+0

, так как вы нашли, что было бы неплохо проголосовать за него. :) –

+0

Я еще не могу голосовать :), но как только я смогу, я буду :) – yoshiMannaert

0

Вы можете использовать if(isset($_POST['buttonName'])), чтобы проверить, если это в пост значения.

0

Используйте action атрибут представить формы в другую Dest inations.

<form action="firstForm.php" method="post"> 
... 
</form> 

<form action="secondForm.php" method="post"> 
... 
</form> 

И создать 2 файла для отправки формы.

Смежные вопросы