สอบถามเรื่อง checkbox ติ๊กแล้วปุ่มปิดครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเรื่อง checkbox ติ๊กแล้วปุ่มปิดครับ

สอบถามเรื่อง checkbox ติ๊กแล้วปุ่มปิดครับ
ผมอยากทราบว่าเมื่อมีการติ๊กที่ checkbox แล้วให้ปุ่ม submit ปิด แล้วเมื่อย้อนกลับมาดูให้ปุ่ม submit ยังคงปิดเหมือนเดิมครับ
ผมเขียนแบบนี้ถูกหรือเปล่าครับ
 
<?php
  if($_SESSION[''].checked == 'true'){
  echo '<div><input type="checkbox hidden" name="a1" id="a1" value="" disabled="true"></div>';
}else{
   echo '<div><input type="checkbox" name="a1" id="a1" value="" disabled="disabled"></div>';
}
?>
 
แบบนี้ถูกต้องหรือเปล่าครับ
แล้วต้องเพิ่มหรือแก้ไขอะไรเพิ่มเติมไหมครับ
ผมเขียนแบบนี้แล้วลองแต่ยังไม่ได้ครับ
ช่วยแนะนำทีนะครับ
ขอบคุนครับ


Maxtri 110.77.227.xxx 21-12-2016 10:45:34

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
โค๊ดอีกอันนึงครับ

<?php
        if($_SESSION['PrintingMacID66'] == '' && $_SESSION['textoc'] == '' &&
          $_SESSION['name15'] == '' && $_SESSION['name16'] == '' && $_SESSION['name17'] == '' &&
          $_SESSION['name5'] == '' && $_SESSION['name6'] == '' && $_SESSION['name7'] == '' &&
          $_SESSION['name11'] == '' && $_SESSION['name12'] == '' && $_SESSION['name13'] == '' &&
          $_SESSION['name14'] == '' && $_SESSION['ProductionTime1'] == '' && $_SESSION['ProductionTime2'] == '' && $_SESSION['TotalProductionTime'] == ''){
            echo '<input type="submit" class="button button-pill button-flat-highlight" 
      name="save" id="save" value="Next | Laminating #1" disabled = "true">';
        }else{
            echo '<input type="submit hidden" class="button button-pill button-flat-highlight" 
      name="save" id="save" value="Next | Laminating #1" disabled = "disabled">';
        }
        
 
       ?>

โค๊ดข้างบนผมเขียนเช็คค่าว่างจากช่อง textbox ครับ
ถ้าว่างให้เปิดปุ่ม ไม่ว่างให้ปิดปุ่ม
แต่ผมอยากทราบว่าถ้าผมจะเขียนตัวแปรของ checkbox แทรกเข้าไปตรงไหนได้ครับ
เพราะผมอยากให้มีการ ติ๊ก checkbox แล้วให้ปุ่มปิดแล้วย้อนกลับมาปุ่มปิดเหมือนเดิมครับ
นอกจากจะสั่งเคลียร์ครับ
ขอคำแนะนำด้วยนะคับ
ขอบคุณครับ


maxtri 110.77.227.xxx 21-12-2016 10:48
 ความคิดเห็นที่ 2
ส่วนใหญ่เงื่อนไขก็ if else ธรรมดา ต้องรู้ก่อนว่า เงื่อนไข if คืออะไร
ใช้อะไรเป็นเงื่อนไข ถ้าจะใช้ session ก็ให้กำหนดค่าตอน submit 
checkbox กับ radio กับ button เวลา submit form จะไม่ส่งชื่อตัวแปร ถ้าไม่ได้ ติ้กเลือกหรือคลิก
ต่างจากตัวอื่นๆ อย่าง text textarea ...  
 
การใช้ checkbox กับ ปุ่ม submit เกี่ยวกับการ disabled ดูเนื้อหานี้เป็นแนวทาง
 
กำหนด ปุ่ม ให้ทำงาน เมื่อคลิกที่ checkbox ยอมรับเงื่อนไข ด้วย jQuery 
https://www.ninenik.com/content.php?arti_id=385 via @ninenik
 
แต่ถ้าใช้ jquery เวอร์ชั่นใหม่แล้วให้ดูตัวอย่างโค้ดด้านล่าง ใช้ prop แทนสำหรับ checkbox และ radio
 
 
โค้ด
 
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

<hr>
	<form action="" method="post">
    <input type="checkbox" name="chk_1" value="100" >
    <button type="submit" name="btn_send" >Send</button>
    </form>

<script  src="https://code.jquery.com/jquery-3.1.1.min.js" ></script>
<script type="text/javascript">
$(function(){
	
	$(":checkbox[name=chk_1]").on("click",function(){
		var i_check = $(this).prop("checked");
		console.log(i_check);
		$("button[name=btn_send]").attr("disabled",i_check);
	});
	
});
</script>
</body>
</html>
 
ส่วนคำถาม แนะนำว่าพยายามทำความเข้าใจ กับสิ่งที่ถามก่อน ฝึก if else ให้คล่อง แล้วจะทำให้
ตั้งคำถามได้เข้าใจ ตรงนี้คงต้องใช้เวลา อธิบายไม่ได้ ส่วนเกี่ยวกับ session ให้เอาตัวอย่างไฟล์นี้
ไปสร้างเป็น text.php แล้วทดสอบอ่านโค้ดดู ไม่เข้าใจตัวไหน ให้หาข้อมูลเพิมเติม

<?php
session_start(); 
?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<?php
$disable_submit = '';
$check_chk = '';
if(isset($_SESSION['ses_chk_1'])){
	echo "มีตัวแปร session ชื่อ ses_chk_1 มีค่า = ".$_SESSION['ses_chk_1'];
	$disable_submit = ' disabled="disabled" ' ;
	$check_chk = ' checked="checked" ';
}else{
	echo "ไม่มีตัวแปร session ชื่อ ses_chk_1";	
}
?>
<hr>
	<form action="" method="post">
    <input type="checkbox" name="chk_1" value="100" <?=$check_chk?>>
    <button type="submit" name="btn_send" <?=$disable_submit?>>Send</button><br>
    <hr>
    ค่าตัวแปร $check_chk | <?=$check_chk?>    <br>
    ค่าตัวแปร $disable_submit | <?=$disable_submit?>
        <hr>
    <br>
<br>
    <button type="submit" name="btn_cancel" >ยกเลิก session ชื่อ ses_chk_1</button>
    </form>
<?php
if(isset($_POST['btn_send'])){
	if(isset($_POST['chk_1'])){
		$_SESSION['ses_chk_1'] = $_POST['chk_1'];
	}
	echo '<script>setTimeout(window.location = window.location.href,2000)</script>';
}
if(isset($_POST['btn_cancel'])){
	unset($_SESSION['ses_chk_1']);
	echo '<script>setTimeout(window.location = window.location.href,2000)</script>';
}
?>    
</body>
</html>


ninenik 14.207.169.xxx 21-12-2016
 ความคิดเห็นที่ 3
ครับ พี่นิก
จะฝึก if else ให้คล่องเลยครับ
เพราะใช้ if else บ่อยมาก ครับ
ขอบคุณครับผม


maxtri 110.78.152.xxx 21-12-2016 15:54
 ความคิดเห็นที่ 4
สอบถามอีกอย่างครับ
ผมอยากให้มันติํกแล้วค้างไว้เลยนะครับ
ไม่ทราบว่าต้องใช้ localstrong หรือเปล่าครับ
พอมีตัวอย่างไหมครับ
ขอบคุนครับ


maxtri 110.78.152.xxx 21-12-2016 15:57
 ความคิดเห็นที่ 5
ขอโทษครับ 
ติ๊กแล้วให้ checkbox ค้างไว้ พี่นิกทิ้งโค๊ดไว้ให้ทดสอบแล้วครับ
ขอบคุนมาก ๆ ครับ


maxtri 110.78.152.xxx 21-12-2016 16:02
 ความคิดเห็นที่ 6
สอบถามอีกอย่างครับ
ถ้าผมต้องการแค่ติ๊ก checkbox แล้วให้มันค้างไว้อย่างเดียวละครับ
โดยที่ผมไม่ได้ติ๊ก แล้วกดปุ่มบันทึกส่งค่าไปนะครับ
ผมสามารถใช้โค๊ดตัวที่พี่่ส่งมาให้ได้เลยใช่ไหมครับ
ขอบคุนครับ


maxtri 110.78.152.xxx 21-12-2016 16:36
 ความคิดเห็นที่ 7
ใช้ ajax สร้าง session โดยส่งค่าการ check ไปยังไฟล์ที่สร้างขึ้นมาแล้วกำหนดการสร้าง 
session ในไฟล์นั้น
 
ajax_session.php
 
<?php 
session_start();  // ถ้ามีใช้งาน session
if(isset($_POST['i_check']) && $_POST['i_check']==1){
	$_SESSION['ses_chk_1'] = $_POST['i_check'];
}else{
    unset($_SESSION['ses_chk_1']);
}
?>
 
แล้วใช้ jquery ส่งค่าติ้กเลือกหรือไม่เลือก checkbox ค่า session จถถูกสร้างหรือถูกลบ
ผ่านการทำงานของ ajax
 
<script  src="https://code.jquery.com/jquery-3.1.1.min.js" ></script>
<script type="text/javascript">
$(function(){
	
	$(":checkbox[name=chk_1]").on("click",function(){
			var i_check = $(this).prop("checked");
			i_check = (i_check==true)?1:0;
			$.post("ajax_session.php",{
				i_check:i_check
			},function(data){
				//  ค่า session จถถูกสร้างหรือถูกลบ  เรียบร้อยแล้ว
            });
	});
	
});
</script>


ninenik 14.207.169.xxx 21-12-2016
 ความคิดเห็นที่ 8
ผมลองทำแล้วแต่ยังไม่ได้เลยครับ
พอมีตัวอย่างสักหน่อยไหมครับ
ขอบคุนครับ


maxtri 110.78.152.xxx 22-12-2016 09:24
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ