при отправке формы, кидает на другую страницу, как вывести, что форма отправилась или есть ошибки, не переходя на новую страницу( на которой еще и ничего нет)?
FeedbackController.php
require_once (MODEL_PATH ."/CategoryModel.php");
class FeedbackController extends Controller
{
private $pageTpl = "/Views/templates/feedback.tpl.php";
public function __construct()
{
$this->model=new FeedbackModel();
$this->view= new View();
}
public function index(){
$this->pageData['title']="Обратная связь";
$category=CategoryModel::Get_Category();
$this->pageData['category'] = $category;
$this->view->render($this->pageTpl,$this->pageData);
}
public function Send_Form()
{ $result=false;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$message = $_POST['message'];
$name = FeedbackController::clean($name);
$phone = FeedbackController::clean($phone);
$email = FeedbackController::clean($email);
$message = FeedbackController::clean($message);
$errors=false;
if (!empty($name) AND !empty($email) AND !empty($phone) AND
!empty($message) ) {
if($email = filter_var($email, FILTER_VALIDATE_EMAIL )){
$errors[]='Некорректный email';
}
if (preg_match("/^\+??[0-9]{6,15}$/", $phone)){
$errors[]='Некорректный номер';
}
if (preg_match("/^[a-zA-ZА-Яа-я]{2,32}$/u", $phone)){
$errors[]='Некорректное имя';
}
$errors[]= " Заполните поля ";
}
if($errors == false){
$theme = 'Новый заказ';
$letter = 'Данные по заявке:\r\n';
$letter .= 'Имя:' . $name . '\r\n';
$letter .= 'Email:' . $email . '\r\n';
$letter .= 'Телефон:' . $phone . '\r\n';
$letter .= 'Имя:' . $message . '\r\n';
$result= mail('samurage15@gmail.com', $theme, $letter);
}
}
}
public
function clean($value = "")
{
$value = trim($value);
$value = stripslashes($value);
$value = strip_tags($value);
$value = htmlspecialchars($value);
return $value;
}
}
кусок с формой в представлении feedback.tpl.php https://code.re/c5M где подключение к контроллеру с ф-ей сделано:
<form action="feedback/Send_Form/feedback" method="POST">
route.php
class Routing{
public static function buildRoute(){
$controllerName="IndexController";
$modelName="IndexModel";
$action = "index";
$route= explode("/",parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH));
$i = count($route)-1;
while($i>0) {
if($route[$i] != '') {
if(is_file(CONTROLLER_PATH . ucfirst($route[$i]) . "Controller.php")
|| !empty($_GET)) {
$controllerName = ucfirst($route[$i]) . "Controller";
$modelName = ucfirst($route[$i]) . "Model";
break;
} else {
$action = $route[$i];
}
}
$i--;
}
require_once CONTROLLER_PATH . $controllerName . ".php";
require_once MODEL_PATH . $modelName . ".php";
$controller = new $controllerName();
$controller->$action();
}
public function errorPage() {
}
}
Это работа ЯваСкрипта. С его помощью можно проверить данные формы - и, если они не прошли проверку, предотвратить сабмит и огорчить юзера.
Самый простой способ:
<form ... onsubmit="if(!test(this)) return false">
где test(f) - функция, проверяющая корректность данных формы f. Она может и огорчить юзера сообщением.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть простенький график который подключен к базе данныхДля наглядности прописал скрипт для рандомного вывода чисел каждые 5 сек ,но почему-то...
Существуют таблицы recipes И users2recipesВ users2recipes записываются recipesId и usersId
Существует задача: сохранить файл по ссылке с помощью PHP и предоставить к нему доступ в Android приложении