| 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: 11 let
|
|||
0