Делаю тестовое задание.Необходимо реализовать гостевую книгу на MVC.Отправляю данные с формы посредством ajax на контроллер моей гостевой книги,а дальше делаю запрос уже к базе данных.Но в контроллере не могу получить эти данные с формы, чтобы в дальнейшем с ними работать.Проверил запрос уходит на сервер,а в контроллере эти данные получить не могу.Ниже прилагаю мой код.
Файл route.php
<?php
class Route
{
static function start()
{
$controller_name = 'Guestbook';
$action_name = 'index';
$routes = explode('/', $_SERVER['REQUEST_URI']);
if (!empty($routes[1])) {
$controller_name = $routes[1];
}
if (!empty($routes[2])) {
$action_name = $routes[2];
}
$model_name = 'Model_' . $controller_name;
$controller_name = 'Controller_' . $controller_name;
$action_name = 'action_' . $action_name;
$model_file = strtolower($model_name) . '.php';
$model_path = "application/models/" . $model_file;
if (file_exists($model_path)) {
include "application/models/" . $model_file;
}
$controller_file = strtolower($controller_name) . '.php';
$controller_path = "application/controllers/" . $controller_file;
if (file_exists($controller_path)) {
include "application/controllers/" . $controller_file;
} else {
Route::ErrorPage404();
}
$controller = new $controller_name;
$action = $action_name;
if (method_exists($controller, $action)) {
$controller->$action();
} else {
Route::ErrorPage404();
}
}
function ErrorPage404()
{
$host = 'http://' . $_SERVER['HTTP_HOST'] . '/';
header('HTTP/1.1 404 Not Found');
header("Status: 404 Not Found");
header('Location:' . $host . '404');
}
}
Файл template_view.php
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Тестовое задание</title>
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="/css/bootstrap-theme.min.css"/>
<link rel="stylesheet" type="text/css" href="/css/style.css"/>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/jquery-3.1.1.min.js" type="text/javascript"></script>
</head>
<body>
<div class="wrapper container">
<header>
<h2>Гостевая книга</h2>
</header>
<div class="row">
<section class="col-md-12">
<?php include 'application/views/' . $content_view; ?>
</section>
</div>
</div>
<script>
$(".form").submit(function(){
var name = $("#inputName").val();
var email = $("#inputEmail").val();
var homepage = $("#inputHomepage").val();
var text = $("#textarea").val();
var tags = $("#tags").val();
var captcha = $("#captcha").val();
$.ajax({
type: "POST",
url: "/guestbook/index",
data: {
name:name,
email:email,
homepage:homepage,
text:text,
tags:tags,
captcha:captcha
},
success: function(data){
alert("Данные успешно отправлены");
console.log(data);
}
});
return false;
});
</script>
</body>
</html>
Файл form.php
<form class="form">
<h3>Оставить сообщение:</h3>
<div class="form-group">
<label for="inputName">Ваше имя:</label>
<input type="text" class="form-control" id="inputName" placeholder="Введите Ваше имя" require>
</div>
<div class="form-group">
<label for="inputEmail">Адрес email:</label>
<input type="email" class="form-control" id="inputEmail" placeholder="Введите email" require>
</div>
<div class="form-group">
<label for="inputHomepage">Домашняя страница:</label>
<input type="url" class="form-control" id="inputHomepage" placeholder="Введите страницу в формате url">
</div>
<div class="form-group">
<label for="textarea">Сообщение:</label>
<textarea id="textarea" class="form-control"></textarea>
</div>
<div class="form-group">
<label for="tags">Теги</label>
<textarea id="tags" class="form-control"></textarea>
</div>
<div class="form-group">
<label for="captcha">Капча:</label>
<input type="text" name="captcha" id="captcha" maxlength="6" size="6"/><img src="/captcha.php"/></td>
</div>
<button type="submit" class="btn btn-default">Отправить</button>
</form>
Файл controller_guestbook.php
<?php
class Controller_Guestbook extends Controller
{
function __construct()
{
$this->model = new Model_Guestbook();
$this->view = new View();
}
function action_index()
{
$error = array();
$post = array(
'username' => $_POST['name'],
'email' => $_POST['email'],
'homepage' => $_POST['homepage'],
'text' => $_POST['text'],
'tags' => $_POST['tags']
);
if ((!empty($post))||(isset($_REQUEST['captcha']))) {
$captcha = false;
if ($_REQUEST['captcha'] == $_SESSION['cap_code']) {
$captcha = true;
} else {
$data['error'] = [[
'captcha' => 'Капча введена не верно!',
]];
}
$data['post'] = $post;
if ((!empty($post))&&($captcha)) {
$error = $this->model->validate($post);
if (empty($error) && ($captcha)) {
$this->model->create($post, false);
$data['post'] = array();
$data['success'] = 'Сообщение успешно отправлено';
} else {
$data['error'] = $error;
}
}
}
$data['items'] = $this->model->getAllActiveGuestbook();
$this->view->generate('guestbook_view.php', 'template_view.php', $data);
}
}