Я работаю над обновлением статуса в Facebook, используя jquery в Codeigniter. Пока у меня есть база данных, модели, контроллеры, представления и jquery.
Мои обновления статуса публикуются в базе данных. Проблема в том, что я не вижу предыдущих обновлений статуса в моем представлении (они должны быть в #content div) , вместо этого, когда я нажимаю submit, я получаю пустой экран (у меня исправлены ошибки php так что дело не в этом). Я подозреваю, что проблема в jquery или представлении списка сообщений.
БАЗА ДАННЫХ
CREATE TABLE IF NOT EXISTS `messages` (
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
`message` VARCHAR(200) NOT NULL,
PRIMARY KEY (`id`)
)
CONTROLLER
<?php
class Message extends CI_Controller
{
function index () {
$this->load->view('default');
}
function add()
{
if ($this->input->post('submit')) {
$id = $this->input->post('id');
$message = $this->input->post('message');
// Add the post
$this->load->model('message_model');
$this->message_model->addPost($id, $message);
}
}
function view($type = NULL)
{
$data['messages'] = $this->db->get('message');
if ($type == "ajax")
$this->load->view('messages_list', $data);
else // load the default view
$this->load->view('default', $data);
}
}
MODEL
<?php
class Message_model extends CI_Model {
function addPost($id, $message) {
$data = array(
'id' => $id,
'message' => $message
);
$this->db->insert('messages', $data);
}
function get($limit=5, $offset=0)
{
$this->db->orderby('id', 'DESC');
$this->db->limit($limit, $offset);
return $this->db->get('messages')->result();
}
}
HTML / JQuery
<!DOCTYPE html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#submit').click(function() {
var msg = $('#message').val();
$.post("<?= site_url('message') ?>", {message: msg}, function() {
$('#content').load("<?= site_url('message/view/ajax') ?>");
$('#message').val('');
});
});
});
</script>
</head>
<body>
<div id="form">
<?php echo form_open('message/add'); ?>
<input type="text" id="message" name="message" />
<?php echo form_submit('submit', 'Update', "class='button'"); ?>
<?php echo form_close(); ?>
</div>
<br />
<br />
<div id="content">
<?php $this->load->view('messages_list') ?>
</div>
</body>
</html>
СПИСОК СООБЩЕНИЙ
(это то, что должно загружаться в #content div; список предыдущих сообщений - ограничено 5 для модели)
<ol>
<?php
if (!empty($message) and (is_array($message)))
foreach ($message as $message):
?>
<li><?= $message->message ?></li>
<?php endforeach ?>
</ol>