A-AA+then

การใช้checkbox ดึงข้อมูล

5,834
ใช้PHP

คืออยากถามว่าจะใช้ checkbox ในการดึงข้อมูลจากฐานข้อมูล(MySql)อย่างไรคับ

ผมมีสองตารางคือ ตารางประเภทสินค้า กับตารางสินค้า แล้ว  checkbox  คือตัวประเภทของสินค้า

สามารถติ๊กcheckbox ได้หลายตัว เมื่อเราเลือกสินค้าประเภทไหนก็จะนำมาแสดงเฉพาะสินค้าที่อยู่ในประเภทที่เลือกนั้นโดยการกดปุ่ม
โดยแสดงในหน้านั้นเลย


ขอบคุณมากคับ

9 ความคิดเห็น

คำถามนิดเดียว แต่คำตอบคงยาว

ถ้าแสดงในหน้าเดิม คำตอบก็คง Ajax แหละครับ แต่โค้ดไม่มีให้ เพราะไม่เคยออกแบบไว้

หลักการจริงๆ ของฟอร์มแบบ ajax ก้ไม่ได้ต่างอะไรกับฟอร์มธรรมดา ต่างกันที่ตอนส่งไปเท่านั้น ให้ลองออกแบบฟอร์ม ธรรมดาดูก่อน

มี check box submit ไป แล้วก็ query ออกมา ตรงๆ ตามนั้นเลย ลองทำให้ได้ซะก่อน

ถัดมาถ้าอยากใส่ Ajax รู้จักมันหรือยัง ถ้ายัง ลองทำความเข้าใจกับมันดู ให้เข้าใจก่อนจะดำเนินการต่อ

ถ้ารู้จัก Ajax ดีแล้ว ก็มาทำต่อ

จากฟอร์มธรรมดาด้านบน ไม่มีอะไรต่างกันกับฟอร์มสำหรับ Ajax ข้อแตกต่างของฟอร์มธรรมดากับ Ajax มีเพียงอย่างเดียวคือ

ฟอร์มธรรมดา submit แล้วส่งไปอีกหน้าหนึ่งตาม action ของฟอร์ม

ฟอร์ม Ajax submit แล้วให้ไปเรียก Javascript มาทำงาน ส่งข้อมูลไป query ด้วย Ajax และ ไม่ต้อง submit

โดยทั่วไป ฟอร์ม และ หน้ารับค่า สามารถออกแบบให้เหมือนกันทุกประการได้ มันให้ผลได้อย่างเดียวกัน ทำหน้าที่เีดียวกัน

ลองดูนะครับ ลองศึกษาดูแล้วถ้าติดค่อยมาถามใหม่ ถามให้แคบกว่านี้ซักหน่อย
1


คือตรงที่่ เวลาเลือก checkbox จะทำยังไงเมื่อเวลาเลือกตัวเลือกแต่ละตัวหรือเลือกหลายตัว Submit ไปแล้วให้มันไปดึงข้อมูล โดยมีเงื่อนไขว่าดึงเฉพาะประเภทที่่เลือกคับ

พึ่งหัดเขียนอะคับ

ขอบคุณครับ
2

ไฟล์สำหรับส่งข้อมูล

<form method="ส่งแบบ get หรือ post" action="ส่งไปให้ไฟล์ php">

 <input type = "checkbox" name = "checkbox[]" value = "checkbox1" />checkbox1<br/>
 <input type = "checkbox" name = "checkbox[]" value = "checkbox2" />checkbox2<br/>
 <input type = "checkbox" name = "checkbox[]" value = "checkbox3" />checkbox3<br/>
 <input name = "send" type = "submit" value = "เรียกดูข้อมูล">

</form>

ไฟล์สำหรับแสดงข้อมูลที่ส่งมา

<?
$checkbox=$_POST['checkbox'];
if(isset($checkbox)){
 $connect = mysql_connect('host','user','password');
 $count = count($_POST['checkbox']);
 for($i=0;$i<$count;$i++){
  $item = $checkbox[$i];
  $sql="select checkbox from checkbox(like) VALUES('$checkbox[$i])";
  $result = mysql_query($sql);
 }else{
  print("ตื่นๆ มีเรื่องแล้ว");
 }
}
?>


บรรทัดสีแดงนั่นมั่วนะ
แต่รูปแบบน่าจะทำนองเนี้ย
3

ขอบคุณมากคับ คือผมทำอย่างงี้ก็ยังไม่ได้อะคับ มันติดต่อ db ไม่ได้อะคับ

ไฟล์ส่งข้อมูล

<form id="form1" name="form1" method="post" action="show.php">
<input type="checkbox" name="cat[]" id="cat[]" value="1"/>
<input type="checkbox" name="cat[]" id="cat[]" value="2"/>
<input type="checkbox" name="cat[]" id="cat[]" value="3"/>
<input type="checkbox" name="cat[]" id="cat[]" value="4"/>
<input type="submit" name="Submit" id="Submit" value="Submit" />
</form>

show.php  ไฟล์แสดงข้อมูล คือว่าไอดีข้อมูลแต่ละตัวในตาราง categorie ผมไปตั้งให้เป็น 1  2   3   4  เลยคับ

<?php
$cat=$_POST['cat'];
if(isset($cat)){
 $connect = mysql_connect('localhost','root','1234') or die("ErROR DATABASE");
 $count = count($_POST['cat']);
 for($i=0;$i<$count;$i++){
  $item = $cat[$i];
  $sql="select * from categorie a,product b where a.cat_Id = b.cat_Id_fk and b.cat_Id_fk = '$item' order by id desc";
  $result = mysql_query($sql) or die("ERROR data");
while ($data = mysql_fetch_array($result)) {


  echo "$data[pro_Name]";
  echo "$data[type_Name]
 }

}
}
?>



พอออกมันก็ไม่ได้คับ มันแสดงตรง 
ERROR data  คับ ทำไมมันติดต่อไม่ได้อะคับ

ดำน้ำไปเรื่อยคับ รู้บ้างไม่รู้บ้าง ช่วยแนะนำด้วยคับ
ขอบคุณครับ
4

555++

ผิดที่ db ก็ลองไปตรวจดู db ตัวเองสิครับ มี อะไร ไม่ตรงกันหรือเปล่า

โค้ดที่เขียนให้ ก็เขียนแบบ คร่าวๆ ยังไงก็ลองทำความเข้าใจกับสิ่งที่ผู้ตอบเขียน และ ไปประยุกต์ให้เข้ากับโค้ดตัวเอง ครับ
5

555+ ได้ละคับ พอดีลืมเรียกdb อิอิ    ขอบคุณคับ แล้วถ้าจะทำให้มาแสดงหน้าเด๋วกันโดยไม่ต้อง refesh อะคับ

ช่วยแนะนำทีคับ ขอบคุณคับ
6

อ้างจากคำตอบที่ #6แล้วถ้าจะทำให้มาแสดงหน้าเด๋วกันโดยไม่ต้อง refesh อะคับ


คงต้องแยกโค้ดที่ติดต่อกับ MySQL ออกไปไว้อีกไฟล์นึง
แล้วสร้างพร้อมให้เรียก AJAX เข้ามาเป็นตัวกลางติดต่อไปยัง
ไฟล์ที่ใช้ติดต่อกับ MySQL แล้วส่งกลับคืนโดยมี AJAX 
เป็นพาหะสู่หน้าที่เรียกใช้งานพร้อมทั้งกำหนดให้มันแสดงข้อมูล
ออกมาตรงจุดไหน

อันนี้คร่าวๆ ของการทำงาน ถึงเวลาทำจริงๆ ถ้าติดปัญหาอะไร
ก็มาโพสถามได้ทุกเวลา
7

ไม่ได้ครับ ช่วยทีครับส่งโปรเจคจบ kumafuc.ker@hotmail.com ให้ตายเหอะแสงแรก ไม่ไหวจิงๆครับ

8

ใครกันหล่ะเนี่ย.........
มาให้ช่วยแบบไร้ที่มาที่ไป.......
คนตอบ งง
9
^