Я использую codeigniter вместе с nodejs для уведомлений в реальном времени. Теперь я просто хочу, чтобы пользователи сообщали о последних изменениях, произошедших на странице (контроллере).Codeigniter Как использовать jquery в контроллере
Следовательно, я использую socketio вместе с nodejs, чтобы получить систему уведомлений. Код выглядит следующим образом:
var socket = io.connect('http://localhost:5000');
$("#messageForm").submit(function() {
var nameVal = $("input[name=nameInput]").val();
var msg = $("input[name=messageInput]").val();
socket.emit('message', { name: nameVal, message: msg }); //LN1
alert('posted'); //Sent from client side
return false;
});
//Receive the notification as soon as posted(for now, will get the same values posted above)
socket.on('message', function(data) {
alert('got response');
var actualContent = $("#messages").html();
var newMsgContent = '<li> <strong>' + data.name + '</strong> : ' + data.message + '</li>';
var content = newMsgContent + actualContent;
$("#messages").html(content);
});
Я, однако, также хочет, чтобы сохранить изменения в форму, поэтому я отправляю значение формы в контроллер, который будет сохранять его в базу данных. После этого я хочу, чтобы этот код запускался.
Так что, я думаю, если я могу получить это как-то так, что было бы лучше:
Class Myclass extends CI_Controller
{
//....contructors etc.
public function save_form()
{
$name = $this->input->post('nameInput');
$msg = $this->input->post('messageInput');
$this->load->model('my_model'); //For saving to database
$saved = $this->my_model->save($name, $msg); //returns true is saved
if($saved)
{
//Now notify user
//Please now tell me how to call the socketio javascript from here
}
redirect('form_url'); //Redirect back to form, from where is was submitted
}
//....other functions
}
}
Так может кто-нибудь сказать мне, как позвонить в JavaScript внутри контроллера? Это хорошая идея? На самом деле я мог бы использовать способ вызова контроллера из ajax, а затем используя $.ajax.done(function(){ socket.emit('message', { name: nameVal, message: msg }); }
, но его слишком поздно, чтобы все вызовы ajax были брошены.
Заранее спасибо