Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ไม่ให้แสดง Modal อีก เมื่อเราติ๊ก Checkbox ทำอย่างไรครับ



 

ไม่ให้แสดง Modal อีก เมื่อเราติ๊ก Checkbox ทำอย่างไรครับ

 



Topic : 136959



โพสกระทู้ ( 29 )
บทความ ( 0 )



สถานะออฟไลน์




modal

Code (PHP)
<div class="modal fade" id="myModal">
  <div class="modal-dialog modal-dialog-centered modal-lg">
    <div class="modal-content">

      <!-- Modal Header -->
      <div class="modal-header">
        <h4 class="modal-title">Topic</h4> 
       
      </div>

      <!-- Modal body -->
      <div class="modal-body">
        เนื้อหา
        
      </div>

      <!-- Modal footer -->
      <div class="modal-footer">
        <div class="checkbox pull-right">
            
            <input type="checkbox" id="myCheck">
            <label class="mr-3 my-auto" for="myCheck">ไม่ต้องแสดงอีกในวันนี้</label>             
        </div>
        <button type="button" class="btn btn-danger" data-bs-dismiss="modal" >Close</button>
      </div>
    </div>
  </div>
</div>

<script type="text/javascript">
    $(window).on('load', function() {
        $('#myModal').modal('show');
    });
</script>




Tag : PHP, CSS, HTML5, jQuery









ประวัติการแก้ไข
2023-03-01 09:38:13
2023-03-01 09:38:58
2023-03-01 09:46:34
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2023-03-01 09:37:12 By : cs013 View : 389 Reply : 5
 

 
change event ของ checkbox
// not-show-today คือ id ของ checkbox
$('#not-show-today').on('change', function() {
  if ($(this).is(':checked')) {
    var today = new Date().toISOString().slice(0, 10);
    localStorage.setItem('notShowToday', true);
    localStorage.setItem('notShowDate', today);
  } else {
    localStorage.removeItem('notShowToday');
    localStorage.removeItem('notShowDate');
  }
});


ใช้ localStorage เก็บวันและสถานะของ checkbox
$(document).ready(function() {
  var notShowToday = localStorage.getItem('notShowToday');
  var notShowDate = localStorage.getItem('notShowDate');
  var today = new Date().toISOString().slice(0, 10);
  
  if (notShowToday && notShowDate === today) {
    // เมื่อไม่แสดง modal ให้ทำอะไร
  } else {
    // วาง code การแสดง modal

    localStorage.removeItem('notShowToday');
    localStorage.removeItem('notShowDate');
  }
});


ลองศึกษา ต่อยอด ดูครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-03-01 11:39:04 By : 009
 


 

No. 2



โพสกระทู้ ( 29 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : 009 เมื่อวันที่ 2023-03-01 11:39:04
รายละเอียดของการตอบ ::
ถ้าแค่ต้องการไม่ให้แสดง modal อีกจนกว่าจะปิดเปิดหน้าเว็บใหม่ละครับ ไม่ต้องให้ถึงวันก็ได้ครับ

ลองศึกษาแล้ว ก็ยังทำไม่ได้เลยครับ
รบกวนอีกครั้งครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-03-01 13:16:12 By : cs013
 

 

No. 3



โพสกระทู้ ( 29 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : cs013 เมื่อวันที่ 2023-03-01 13:16:12
รายละเอียดของการตอบ ::
ถ้าแบบ เมื่อ ติ๊ก checkbox ให้มันเก็บค่าลงในตัวแปร $_SEESION[ ] เลยได้ไหมครับ
ผมไปศึกษาแล้วมันมีคำสั่ง sessionStorage แต่ยังเอามันไปใช้นอกฟังก์ชั่นไม่ได้อะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-03-01 13:27:44 By : cs013
 


 
ตอบความคิดเห็นที่ : 2 เขียนโดย : cs013 เมื่อวันที่ 2023-03-01 13:16:12
รายละเอียดของการตอบ ::
แบบนั้นซับซ้อน ไม่แนะนำ เพราะต้องเสียเวลา track user เมื่อไรเปิดเว็บอื่นหรือไม่
ที่ใกล้เคียงสุด คือ when user closing browser ไม่ใช่ closing website
ซึ่งก็ยังต้องพึ่ง cookie อยู่ดี


ตอบความคิดเห็นที่ : 3 เขียนโดย : cs013 เมื่อวันที่ 2023-03-01 13:27:44
รายละเอียดของการตอบ ::
ใช้นอกฟังก์ชันคืออะไร หมายถึงการรับส่งข้อมูลระหว่าง JS <-> PHP ?
ก่อนอื่นต้องแยกแยะระหว่าง client-server side
localStorage ด้านบน implement ฝั่ง client

ส่วนตัวอย่างล่างนี้ทำใน PHP

$_SESSION (เมื่อคลิก checkbox)
if (isset($_POST['notShowToday'])) {
  $_SESSION['notShowToday'] = date('Y-m-d');
}


$_SESSION (สำหรับตรวจสอบ)
<?php
session_start();
if (isset($_SESSION['notShowToday']) && $_SESSION['notShowToday'] === date('Y-m-d')) {
  // ไม่แสดง modal popup
} else {
  // แสดง modal popup

  $_SESSION['notShowToday'] = date('Y-m-d');
}
?>





หรือ ใช้ cookie

ตอนติ๊ก checkbox
if (isset($_POST['notShowToday'])) {
  $expireTime = time() + (60 * 60 * 24); // หมดอายุ 24 ชม.
  setcookie('notShowToday', date('Y-m-d'), $expireTime);
}


ตอนเช็ค cookie
<?php
if (isset($_COOKIE['notShowToday']) && $_COOKIE['notShowToday'] === date('Y-m-d')) {
  // ไม่มี modal popup
} else {
  // ถ้ามี modal ถัดจากบรรทัดคอมเม้นต์นี้ใส่โค้ดเพิ่มเองเพื่อให้มันโชว์

  $expireTime = time() + (60 * 60 * 24); // 24 ชม.
  setcookie('notShowToday', date('Y-m-d'), $expireTime);
}
?>





Quote:
ตัวอย่างที่ผมให้ไว้จะไม่ทำงานเมื่อทำการคัดลอกวางอย่างเดียว
แต่ต้อง implement ส่วนที่ขาดหายไปตามแวดล้อมของต้นก่อน
และก่อนนั้นต้องมีพื้นฐานเรื่อง client-server side
ไม่งั้น ตัวอย่างเหล่านี้ก็ไม่ต่างอะไรจากข้อความธรรมดา

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-03-01 15:03:13 By : 009
 


 
cookie
ทำงานได้ทั้ง Front End และ Back End
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-03-01 15:51:44 By : Guest
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ไม่ให้แสดง Modal อีก เมื่อเราติ๊ก Checkbox ทำอย่างไรครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่