Создание движка на MVC. Начинаем делать чат.
Всем привет! В прошлой статье мы создали систему авторизации пользователей, а в этой мы начнем создавать чат.
В файле dashboard.php, в конструкторе, после проверки условия, пропишем следующее:
$this->view->js = array('dashboard/js/default.js');
А теперь в файле header.php мы проверим это перед закрывающим тегом head.
<?php
if(isset($this->js)) {
foreach($this->js as $js) {
echo '<script src="'.URL.'views/'.$js.'"></script>';
}
}
?>
Откроем файл index.php, который находится в папке dashboard и создадим там форму.
Dashboard... Logged in only...
<br>
<form id="randomInsert" action="<?php echo URL; ?>dashboard/xhrInsert" method="post">
<input type="text" name="text">
<input type="submit">
</form>
В файле dashboard.php создадим метод xhrInsert.
function xhrInsert() {
$this->model->xhrInsert();
}
Откроем файл default.js, который находится в папке dashboard/js
$(function() {
$('#randomInsert').submit(function() {
var url = $(this).attr('action');
var data = $(this).serialize();
$.post(url, data, function(o) {
alert(1);
});
return false;
})
});
В папке models создадим файл dashboard_model.php
class Dashboard_Model extends Model {
function __construct() {
parent::__construct();
}
function xhrInsert() {
$text = echo $_POST['text'];
$sth = $this->db->prepare('INSERT INTO data(text) VALUES(:text)');
$sth->execute(array(':text' => $text));
}
}
Откроем нашу базу данных mvc и создадим таблицу data с 2 полями.
id int 11 primary_key auto_increment
text varchar 255
Проверим, все должно работать. Введите какое-то сообщение в поле, и оно должно появиться у вас в базе данных.
На этом остановимся сегодня, всем спасибо за внимание и удачи!
-
- Михаил Русаков
Комментарии (3):
В классе Database нужно прописать "set names utf8", иначе при сохранении сообщений, в базе сохраняются кракозябры.
Ответить
$sth = $this->db->exec("set names utf8");
Ответить
Ошибочка В папке models создадим файл dashboard_model.php /// $text = echo $_POST['text'];
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.