اذهب إلى المحتوى

السؤال

نشر

هذا كود قائمة منسدلة للرسائل الواردة به عداد للاشعارات

<div class="dropdown_messages">
  <button onClick="myFunction()" class="dropbtn" id="dropbtn" title="الرسائل">
  <div id="noti_Counter" class="noti_Counter"></div>
  </button>
  <div id="myDropdown" class="dropdown-content">
<?php
include('connect_file.php');
$stmt = $db->prepare('select * from(select * FROM messages WHERE recipient_id =? GROUP BY id DESC) as T GROUP BY T.sender_id ORDER BY id DESC');
$stmt->bind_param('i', $_SESSION['id']);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) 
{
echo '-'.$row['sender_name'].'<br />'.$row['date'].'<br />'.$row['message'].' ';
}
$stmt->close();
?>
  </div>
</div>
<script>
    $(document).ready(function () {
        $('#noti_Counter')
            .css({ opacity: 0 })
            .text('7')  
            .css({ top: '-10px' })
            .animate({ top: '-2px', opacity: 1 }, 500);
        $('#dropbtn').click(function () {
            $('#myDropdown').fadeToggle('fast', 'linear', function () {
                if ($('#myDropdown').is(':hidden')) {
                    $('#dropbtn').css('background-color', '#2E467C');
                }
                else $('#dropbtn').css('background-color', '#FFF');
            });
            $('#noti_Counter').fadeOut('slow'); 
            return false;
        });
        $(document).click(function () {
            $('#myDropdown').hide();
            if ($('#noti_Counter').is(':hidden')) {
                $('#dropbtn').css('background-color', '#2E467C');
            }
        });   
    });
</script>	

وجدول الرسائل به حقل `message_status`  يعطي قيمة ثابتة وهى  '  0  '  مع كل رسالة تخزن في القاعدة

`message_status` int(1) NOT NULL,

كيف يمكن ربط الكود السابق بملف خارجي بحيث انه عندما يكون حقل `message_status`  يساوي 0  يقوم بحساب جملة القيم  ويطبعها فى عداد الاشعارات  وعند الضغط على ايقونة الرسائل وعداد الاشعارات يتم تعديل الحقل `message_status`   ليتم تغيير القيمة صفر  الى اى رقم اخر مثلا 1 بحيث يختفي العداد  ولا يظهر مرة اخرى الا فى وجود القيمة 0

مثلا الملف الخارجى ليكن اسمه noti_counter_messages.php

<?php
include('connect_file.php');
$stmt = $db->prepare('select * from messages WHERE recipient_id =? ORDER BY id DESC');
$stmt->bind_param('i', $_SESSION['id']);
$stmt->execute();
...................................
.........
if........!= '')
{
$update_query = "UPDATE messages SET message_status = 1 WHERE message_status=0";
.................
.........

كيف يمكن التعديل على الكود الاول والكود الثاني لتتم طباعة الاشعارات واختفائها حسب القاعدة

لا اعرف اذا كانت الفكرة فى الكود الثاني فعالة ام لا لكن ربما تكون لديكم افكار اخرى ليعمل الكود بشكل صحيح

فرجاءا من يستطيع تعديل الاكواد فليتفضل مشكورا

Recommended Posts

  • 1
نشر

يمكنك استخدام ajax.$ لجلب حالة الرسالة و ايضا من إرسال قيمة post لحالة الرسالة الجديدة عند فتحها فهي تزود GET, POST, في حالة جلب الحالة نستخدم GET.

<script>
function checkMessages() {
$.ajax({
    type: "GET",
    url: "هنا الرابط",
    dataType: "html",
    success: function(response) {
        //jQuery(".kleo-open-chat > .count").html(response);
    }
});
}
setInterval(checkMessages(), 600000);
</script>

وفي حالة إرسال حالة الرسالة الجديدة نستخدم POST 

$.ajax({
  type: 'post',
  url: 'هنا الرابط',
  dataType: 'text',
  data: {
   'status':name
  },
  cache:false,
  success: function (data) {
   //$('#msg').html(data);
  }
 });

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...