Autor | Zpráva | ||
---|---|---|---|
pajka Profil * |
#1 · Zasláno: 28. 4. 2015, 16:16:49
Zdravím,
Mám problém nevím proč mi to přestalo fungovat. Na webu mám kalendář kde si uživatel klikne daný den a najedou mu časy které si vybere. A dá objednat rezervaci,ale ještě než objedná tak najede formulář kde vypíše své jméno,tel.,email...atd když nějaké políčko nevypíše a odešle naskočí chyba, že není vyplněno to a to políčko. To je vše v pořádku,ale chyba je v to, že když vypíše všechny údaje a odešle formulář tak sice objednávka mi dorazí na mail,ale uživateli se neukáže na webu, že formulář byl úspěšně odeslán a přitom to mám v kódu zapsané. Zde ukázka: <?php require "reservation/config.php"; $time_id = isset($_GET["time_id"]) ? $_GET["time_id"] : NULL; if ($time_id == NULL) { Header("Location: index.php"); exit(); } if (isset($_POST["submit"])) { unset($_POST["date"], $_POST["time"]); $validation = new FormValidation($_POST); $validation->setRule("name", Rules::FILLED, "Jméno nebylo vyplněno."); $validation->setRule("sname", Rules::FILLED, "Příjmení nebylo vyplněno."); $validation->setRule("place", Rules::FILLED, "Místo musí být vyplněné."); $validation->setRule("email", Rules::EMAIL, "Email není zadán ve správném formátu."); $validation->check(); if ($validation->isValid()) { $values = $validation->getValues(); $reservation = new Reservation(); $reservation->setDate($values["hidden_date"]); $reservation->setTimeFrom($values["time_from"]); $reservation->setTimeTo($values["time_to"]); $reservation->setName($values["name"]); $reservation->setSname($values["sname"]); $reservation->setPlace($values["place"]); $reservation->setEmail($values["email"]); $reservation->setCountOfPerson((int) $values["count_of_person"]); $reservationRepository = new ReservationRepository($database); $reservationRepository->setTable("reservation"); $reservationRepository->save($reservation); $timeRepository = new AccessedTimeRepository($database); $timeRepository->setTable("accessed_time"); $timeRepository->delete($time_id); $mail = new Mail(); $mail->setRecipient("objednavkabb@centrum.cz"); //kopii odesleme na email z formulare $mail->setRecipient($reservation->getEmail()); $mail->setValues($reservation); $mail->send(); $message = "Objednávka byla přijata. Na mail Vám přišla kopie objednávky. Děkujeme za objednávku."; } else { $errors = $validation->getErrors(); } } $accessedTimeRepository = new AccessedTimeRepository($database); $accessedTimeRepository->setTable("accessed_time"); $date = $accessedTimeRepository->find($time_id); ?> <div id="right"> <p class="date"></p> <?php if (isset($errors)) { echo "<ul>"; foreach ($errors as $error) { echo "<li>$error</li>"; } echo "</ul>"; } ?> <div id="wrapper"> <form action="#" method="POST" class="reservation_form"> <div class="form_line"> <label>Datum:</label> <?php $c_date = new DateTime($date->date); ?> <input type="text" name="date" class="textinput" value="<?php echo $c_date->format("j.n.Y");?>"> </div> <div class="form_line"> <label>Začátek - konec:</label> <input type="text" name="time" class="textinput" value="<?php echo $date->from . " - " . $date->to;?>"> </div> <div class="form_line"> <label>Jméno:</label> <input type="text" name="name" class="textinput" value="<?php if (isset($_POST["name"])) { echo $_POST["name"]; }?>"> </div> <div class="form_line"> <label>Příjmení:</label> <input type="text" name="sname" class="textinput" value="<?php if (isset($_POST["sname"])) { echo $_POST["sname"]; }?>"> </div> <div class="form_line"> <label>Telefon:</label> <input type="text" name="place" class="textinput" value="<?php if (isset($_POST["place"])) { echo $_POST["place"]; }?>"> </div> <div class="form_line"> <label>Email:</label> <input type="text" name="email" class="textinput" value="<?php if (isset($_POST["email"])) { echo $_POST["email"]; }?>"> </div> <div class="form_line"> <label>Počet osob:</label> <input type="text" name="count_of_person" class="textinput" value="<?php if (isset($_POST["count_of_person"])) { echo $_POST["count_of_person"]; }?>"> </div> <input type="hidden" name="time_to" value="<?php echo $date->to; ?>"> <input type="hidden" name="time_from" value="<?php echo $date->from; ?>"> <input type="hidden" name="hidden_date" value="<?php echo $c_date->format("j.n.Y");?>"> <div class="form_line_control"> <input type="submit" name="submit" class="fourthsubmit" value="Odeslat rezervaci"> </div> </form> </div> a tedy tahle věta se nevypíše po správném odeslání formuláře $message = "Objednávka byla přijata. Na mail Vám přišla kopie objednávky. Děkujeme za objednávku."; |
||
petr 6 Profil |
#2 · Zasláno: 28. 4. 2015, 16:32:52
pajka:
„přitom to mám v kódu zapsané“ Kde máte v kódu echo $message ?
|
||
tiso Profil |
#3 · Zasláno: 28. 4. 2015, 16:34:07
Tú premennú nikde nevypisuješ
|
||
pajka Profil * |
#4 · Zasláno: 28. 4. 2015, 21:37:09
aha :) jsem to ale nemehlo. Dík
Ještě otázka jak bych provedl aby když to odešlu ten formulář tak aby potom se i smazal a zůstal tam jen ten výpis, že to bylo odesláno. Musí to být přes JS? |
||
Keeehi Profil |
#5 · Zasláno: 28. 4. 2015, 22:06:37
pajka:
Tak ho obal ifem. Něco ve smyslu if (isset($_POST["submit"]) && !$errors) { |
||
Časová prodleva: 10 let
|
0