• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پیغام دادن وقتی که یک رکورد به جدول اضافه میشود
#1
سلام دوستان

این عکس رو ببینید :
[عکس: 88032816534539001757.jpg]

فکر کنم واضح باشه
مدیر داره لیستی از رکورد های ثبت شده رو میبینه به محضه اینکه کارمند یک رکورد جدید ثبت میکنه یه popup یا یه چیزی شبیه این برای مدیر بیاد که آقا رکورد جدید اضافه شده اینم لینک جزئیات رکورد

ممنون Heart
  پاسخ
تشکر شده توسط :
#2
سلام حالا شما چی میخواید؟
  پاسخ
تشکر شده توسط : phpphp
#3
سادش میکنم
controller :
---------------------
کد:
<?php

class alaki extends Controller
{

    function __construct()
    {
        parent::__construct();
        $this->view->js[] = "alaki/js/default.js";
    }
    function index()
    {
        $this->view->render('alaki/index');
    }
    public function list_tbl()
    {
        $reslut = $this->model->list_tbl();
        echo json_encode($reslut);
    }
}
Model :
-------------------------
کد:
<?php

class Alaki_Model extends Model {

    public function __construct() {
        parent::__construct();
    }
    public function list_tbl()
    {
        return $this->db->select("select * from newtable");
    }
}
view :
------------------------
کد:
<table border="1" width="400" dir="ltr" id="list" >
    <tr>
        <th>Id</th>
        <th>Name</th>
        <th>family</th>
    </tr>
</table>
js :
---------------------------
کد:
var path = 'http://localhost/test_test/';
$(document).ready(function() {
    $.get(path+ "alaki/list_tbl/", function(data) {
        for (var i = 0; i <= data.length; i++) {
                $("#list").append('<tr><td>'+ data[i]['Id']+'</td><td>'+ data[i]['name']+'</td><td>'+ data[i]['family']+'</td></tr>');
            }
    }, "JSON");})
میخوام بدون رفرش کردن رکورد جدید رو ببینم
الان لیست رکورد های ثبت شده تا این لحظه رو نمایش میده ولی اگه دستی یا از یه صفحه دیگه یه رکورد به این جدول اضافه کنیم تا صفحه رو رفرش نکنیم رکورد جدید رو نمیبینیم

چه باید کرد؟
  پاسخ
تشکر شده توسط :
#4
باید از ajax استفاده کنی
ساده ترین راهش استفاده از jquery هست

http://api.jquery.com/jquery.ajax/
  پاسخ
تشکر شده توسط : phpphp
#5
(۱۳۹۳ آبان ۰۴, ۰۳:۳۲ ب.ظ)Hamid نوشته: باید از ajax استفاده کنی
ساده ترین راهش استفاده از jquery هست

http://api.jquery.com/jquery.ajax/

مرسی

میتونی تو همین نمونه کدی که نوشتم مثال بزنی؟؟
  پاسخ
تشکر شده توسط :
#6
نقل قول: الان لیست رکورد های ثبت شده تا این لحظه رو نمایش میده ولی اگه دستی یا از یه صفحه دیگه یه رکورد به این جدول اضافه کنیم تا صفحه رو رفرش نکنیم رکورد جدید رو نمیبینیم
سلام
مگه شما فقط یه بار درخواست با ajax نفرستاتید؟خوب اونم یه بار جواب شما رو میده Tongue
یه تایمری چیزی بزارید هر چند ثانیه بره برسی کنه
  پاسخ
تشکر شده توسط : phpphp
#7
(۱۳۹۳ آبان ۰۶, ۰۱:۳۷ ب.ظ)saeideng نوشته:
نقل قول: الان لیست رکورد های ثبت شده تا این لحظه رو نمایش میده ولی اگه دستی یا از یه صفحه دیگه یه رکورد به این جدول اضافه کنیم تا صفحه رو رفرش نکنیم رکورد جدید رو نمیبینیم
سلام
مگه شما فقط یه بار درخواست با ajax نفرستاتید؟خوب اونم یه بار جواب شما رو میده Tongue
یه تایمری چیزی بزارید هر چند ثانیه بره برسی کنه

قربون شکلت اگه میخواستم با تایمر اوکی کنم که به قوله شما یه اسکریپت ساده رو با تایمز هی ران میکردم
موضوع سره اینه که حجم اصلاعات اضافه شونده در لحظه و دیتا بیس بالاست واسه همین اگه بخوام تایمر بزارم که هی بره اطلاعات جدید رو بگیره بیاره که سرور سکته میزنه
واسه همین دنباله اینم که هروقت سرور تغییری در رکورداش ایجاد شد کلاینت رو خبر کنه یه جورایی لایو ببینه

این عکس رو نگاه کن :
داستان رو میگیری Smile
[عکس: 27zjm9u.png]

الان اوپراتور مثلا یک فرم خرید ثبت میکنه
یه پیغام برای مسئول خرید میفرسته که آقا بفرما فرم جدید Smile که تو اون پیغام لینک داره به جزئیات فرم خرید
اون مدیریت هم به صورت زنده داره فعالیت های کارمندان رو بدون رفرش کردن میبینه (مانیتورینگ) یعنی میبینه الان یه فرم خرید ثبت شد عهه الان فرم خرید توسط مسئول خرید تایید شد و الی آخر Cool

اوکی ؟
  پاسخ
تشکر شده توسط :
#8
برای آوردن اطلاعات از json استفاده کنید حجم رفت و آمد کم بشه راحت شید
بعد این که تایمر مثال بود
شما باید ساز و کاری مثل تایمر ایجاد کنید اما تا آمدن پاسخ قبلی صبر کنید و بعد از اون درخواست جدید بفرستید
شما زمان 0 یه درخواست میفرستید و 10 ثانبه هم منتظرش میمونید اگه اومد که هیچ نیومد یه درخواست دیگه ارسال میکنید
شما هر درخواست رو حداکر تا 10 ثانیه سمت سرور معطل میکنید اگه تو این بازه زمانی پاسخ اومد جواب رو ارسال میکنید اگه نیومد بعد 10 ثانیه درخواست رو بدون رها میکنید یا این که یه جواب میفرستید که نامه ای نیست بعد کلاینت یه درخواست دیگه میفرسته و باز 10 ثانیه منتظر میمونه
این 10 ثانیه رو شما میتونید کاهش یا افزایش بدید اما بیشتر از 30 ثانیه به طور پیشفرض عمل نمیکنه و تایم اوت میده از سمت سرور

تو اون 10 ثانیه مثلا ثانیه 5 یه نامه به سیستم اضافه میشه بعد یه جواب به کلاینت ارسال میشه میگه نامه اومده اونم میگه تشکر و دوباره یه درخواست دیگه میفرسته تا سمت سرور 10 ثانیه بمونه
برای سمت سرور موندن هم مثلا میتونید داخل حلقه بزارید یا هر کاری که تونستید مهم اینه معطل بمونه تا یه وقت اگه نامه اومد سریع جواب رو به کلاینت بفرسته
  پاسخ
تشکر شده توسط : phpphp
#9
مرسی
روش کار میکنم ببینم چی میشه

Heart
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان