C serialize() всё верно, нужно только изменить обработчик. В массиве $_POST нету ключа submit. Можно изменить
Код:
if(isset($_POST['submit']))
на
Код:
if(isset($_POST['email']) AND isset($_POST['message']))
Это решит вашу проблему и данные начнут сохраняться в базу.
Но есть другой момент, в Вашем случае ajax-запрос должен возвращать только информацию о успешности операции, либо какие-нибудь ошибки, сейчас же он возвращает целиком всю страницу. Как вариант для ajax-запросов можно сделать отдельный контроллер, который будет наследоваться от Controller, а не от Controller_Template, ну и там уже держать экшены, которые будут обрабатывать сами запросы. Вот пример для Вашего кода:
Код:
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Ajax extends Controller {
public function action_new_user()
{
$username = $_POST['email'];
$password = $_POST['message'];
$insert = DB::insert('users')->columns(array('username', 'password'))->values(array($username, $password));
list($insert_id, $affected_rows) = $insert->execute();
}
}
Ну и конечно же не помешали бы какие-нибудь валидации перед записью в базу.., правда это наверное ещё только наброски.