Я так написал, потому что я реализовал подобный код с setInterval 30*1000.
реализовывал я это как-то так)
Напишу только для одного <span>
Если есть замечания всегда рад выслушать))
newmass.js
function newArticle(id){
$.ajax({
type: 'POST',
url: "mass.php",
data: {article: id},
error: function(req, text, error) {
alert('Ошибка AJAX: ' + text + ' | ' + error);
},
success: function (json) {
jxr_decode(json);
},
dataType: "json"
}
);
}
setInterval(newArticle, 30000)
function jxr_decode(json) {
for (i = 0; i < json.length; i ++) {
switch (json[i][0]) {
case 'span':
$("#"+json[i][1]).text(json[i][2]);
break;
}
}
}
Bootstrap.php
class Bootstrap {
function __construct() {
session_start();
$controller = new Controller();
$contadm = new ControllerAdmin();
switch ($url[0]) {
case 'mass.php':
$contadm->getMass();
break;
и тд...}
ControllerAdmin.php
function getMass()
{
$view = new ViewAdmin();
if(isset($_SESSION['id_user']))
{
$model = new ModelAdmin();
$mod = $model->getMass();
$new_doc_r = $model->new_doc_r();
$new_doc_m = $model->new_doc_m();
$new_doc_r = count($new_doc_r);
$new_doc_m = count($new_doc_m);
$new_doc_all = $new_doc_r + $new_doc_m;
if ($new_doc_all==0){
$new_doc='';
}
else{
$new_doc = ' ('.$new_doc_all.')';
}
$view->showmass($mod, $new_doc);
}
else
{
$view->getLogin();
}
}
ModelAdmin.php
function new_doc_r(){
$id_user = $_SESSION['id_user'];
$doc_nazn = $_SESSION['prog_doc_role'];
$sql = 'SELECT progr_doc.id_doc FROM progr_doc
WHERE doc_nazn="' . $_SESSION['prog_doc_role'] . '" AND doc_id_user_ispolnitel="' . $id_user . '"';
$stmt = $this->dbh->query($sql);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
function new_doc_r() подобная
ViewAdmin.php
function showmass($mod, $new_doc) {
require 'views/admin/mass.php';
}
mass.php
echo json_encode(array(
array('span', 'con', $new_doc)));
и выводит всё в
<span id="con"></span>
реализовывал я это как-то так)
_____________
Прошу критиковать, если что-то не так.