|
|
|
PHP Multiple Checkbox ช่วยดูหน่อยค่ะ มีรุปภาพประกอบ |
|
|
|
|
|
|
|
เพิ่มข้อมูลอื่นๆเข้าไปใน value โดยใช้ลูกน้ำคั่น แล้วเอาไป split เอาก็ได้คับ
แต่จริงๆ ควรดึงข้อมูลจากฐานข้อมูลอีกรอบครับ เผื่อจะโดนโจมตี ทำให้ข้อมูลผิดพลาดได้ครับ
|
|
|
|
|
Date :
2010-02-01 13:42:24 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดึงจาก database ก็ดีนะ ส่งไปแค่ id แล้วไปตายเอาดาบหน้า
เอ้ยไม่ใช่ ไป query เอาข้างหน้า
พยามเลียนแบบชื่อ field ให้แล้วนะกลัวงง
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="checkbox2.php" method="post">
<input type="checkbox" name="chkColor[]" value="1">PHP <br/>
<input type="checkbox" name="chkColor[]" value="2">.NET <br/>
<input type="checkbox" name="chkColor[]" value="3">Java <br/>
<input type="checkbox" name="chkColor[]" value="4">Perl <br/>
<input name="submit" type="submit" value="submit" />
</form>
</body>
</html>
Code (PHP)
[php]<?
for($i=0;$i<count($_POST["chkColor"]);$i++){
$chk_id ="";
if($i < count($_POST["chkColor"])-1){ $comma = ","; }else{ $comma ="";}
if(trim($_POST["chkColor"][$i]) != ""){
$chk_id .= $_POST["chkColor"][$i].$comma;
}
echo $chk_id; // เอา id ตัวนี้ไป เป็น parameter ในเงื่อนไข where
}
// ก็เรียกข้อมูลจาก database มา show
/*
$sql = "select id, x, y , z form tb_xyz WHERE id IN($chk_id) ";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result){
// อะไรก็ว่าไป
}
*/
?>
[/php]
|
|
|
|
|
Date :
2010-02-01 15:47:52 |
By :
peterxp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หมายถึง เอาตัวนี้ $chk_id ลง db ก่อน
แล้วค่อย เรียกข้อมูลจาก database มา show ใช่หรือเปล่าค่ะ
พอดีตรง checkbox มันก็ดึงมาจาก ฐานข้อมูลอยู่แล้วอ่ะค่ะ
งั้นก็แสดงว่า ก็ดึงมา show ได้เลยใช่ไหมค่ะ
แล้วค่อยไป insert อีกตารางนึง
ขอบคุณสำหรับคำตอบค่ะ
|
|
|
|
|
Date :
2010-02-01 19:02:39 |
By :
Ninezy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ต้องนี่ครับ ดึงมาเก็บไว้ใน ตัวแปรนี้ $chk_id ก่อน
ถ้า echo ออกมาจะเป็น 1,2,3 ตามที่ tick มาอ่ะครับ
ผมทำ file ติดกัน
File Name: checkbox1.html
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="checkbox2.php" method="post">
<input type="checkbox" name="chkColor[]" value="1">PHP <br/>
<input type="checkbox" name="chkColor[]" value="2">.NET <br/>
<input type="checkbox" name="chkColor[]" value="3">Java <br/>
<input type="checkbox" name="chkColor[]" value="4">Perl <br/>
<input name="submit" type="submit" value="submit" />
</form>
</body>
</html>
File Name: checkbox2.php
Code (PHP)
<?
for($i=0;$i<count($_POST["chkColor"]);$i++){
$chk_id ="";
if($i < count($_POST["chkColor"])-1){ $comma = ","; }else{ $comma ="";}
if(trim($_POST["chkColor"][$i]) != ""){
$chk_id .= $_POST["chkColor"][$i].$comma;
}
echo $chk_id; // เอา id ตัวนี้ไป เป็น parameter ในเงื่อนไข where
}
// ก็เรียกข้อมูลจาก database มา show
/*
$sql = "select id, x, y , z form tb_xyz WHERE id IN($chk_id) ";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result){
// อะไรก็ว่าไป
}
*/
?>
|
|
|
|
|
Date :
2010-02-01 19:15:07 |
By :
peterxp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ ได้แล้วค่ะ
มันออกแบบนี้ค่ะ
job20100128134125,988797,78978,job20100128134116,77788,5555
ทีนี้ เราก็เอา $chk_id insert ใส่ db ได้เลยไหมค่ะ ยกตัวอย่างให้หน่อยค่ะ งง T_T
Code (PHP)
$sql1 = "INSERT INTO tb_job (job_id, job_code, job_name, job_service) VALUES ('???')";
$result1 = mysql_db_query($dbname,$sql1);
if(!$result1) { echo "Error : Can not save to database"; exit(); }
|
|
|
|
|
Date :
2010-02-01 19:49:01 |
By :
Ninezy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาไปทำอะไรก็ตามแต่ flow ของระบบอ่ะครับ
ตอบมาจนถึงตอนนี้ก็ยังไม่รู้เลยครับว่าต้องการให้ระบบทำอะไร
ดำน้ำตอบตลอดมา เพราะไม่เห็น code ครับ
อยากได้ก้าวหน้ากว่านี้ก็ code มา post ให้เพื่อนๆ ตอบช่วยกันงับ
|
|
|
|
|
Date :
2010-02-01 20:30:39 |
By :
peterxp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ความจริงก็คือ จะดึงข้อมูล จากฐานข้อมูล tb_job แล้วทำ checkbox เพื่อ insert ไปลง ฐานข้อมูล tb_jb ค่ะ
แต่เนี่ยดันเป็น Multi เลยงงอ่ะค่ะ
Code (PHP)
<form action="add_job_2.php" method="post" name="form1">
<?
mysql_connect('localhost','root','1234'); // connect mysql
mysql_select_db('fun'); // select database
mysql_query("SET NAMES 'tis620'");
if(!isset($start)){
$start = 0;
}
$limit = '10'; // แสดงผลหน้าละกี่หัวข้อ
$Qtotal = mysql_query("select * from tb_job where job_status = '1'"); //คิวรี่ คำสั่ง
$total = mysql_num_rows($Qtotal); // หาจำนวน record
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("fun");
$strSQL = "SELECT * FROM tb_job where job_status = '1' ORDER BY job_id DESC LIMIT $start,$limit ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$totalp = mysql_num_rows($objQuery); // หาจำนวน record ที่เรียกออกมา
?>
<table width="900" border="1" align="center">
<tr bgcolor="#CCCCCC">
<th width="150"> <div align="center">เลือก</div></th>
<th width="150"> <div align="center">รหัสงานบริการ</div></th>
<th width="200"> <div align="center"> ชื่องานบริการ</div></th>
<th width="150"> <div align="center">อัตราค่าบริการ (บาท)</div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
$job_codez=$objResult["job_code"];
$job_namez=$objResult["job_name"];
$job_servicez=$objResult["job_service"];
?>
<tr>
<td><div align="center"><input type="checkbox" name="chkColor[]" value="<?=$job_codez;?>,<?=$job_namez;?>,<?=$job_servicez;?>"><br></a></center></td>
<td><div align="center"><?=$objResult["job_code"];?></div></td>
<td><center><?=$objResult["job_name"];?></a></center></td>
<td><center><?=$objResult["job_service"];?></a></center></td>
<?
}
/* ตัวแบ่งหน้า */
$page = ceil($total/$limit); // เอา record ทั้งหมด หารด้วย จำนวนที่จะแสดงของแต่ละหน้า
/* เอาผลหาร มาวน เป็นตัวเลข เรียงกัน เช่น สมมุติว่าหารได้ 3 เอามาวลก็จะได้ 1 2 3 */
for($i=1;$i<=$page;$i++){
if($_GET['page']==$i){ //ถ้าตัวแปล page ตรง กับ เลขที่วนได้
echo "[<a href='?start=".$limit*($i-1)."&page=$i'><B>$i</B></A>]"; //ลิ้งค์ แบ่งหน้า เงื่อนไขที่ 1
}else{
echo "[<a href='?start=".$limit*($i-1)."&page=$i'>$i</A>]"; //ลิ้งค์ แบ่งหน้า เงื่อนไขที่ 2
}
}
?>
<?
?>
</table>
<?
mysql_close($objConnect);
?>
<input name="btnSubmit" type="submit" value="Submit">
</body>
</html>
Code (PHP)
<?
for($i=0;$i<count($_POST["chkColor"]);$i++){
$chk_id ="";
if($i < count($_POST["chkColor"])-1){ $comma = ","; }else{ $comma ="";}
if(trim($_POST["chkColor"][$i]) != ""){
$chk_id .= $_POST["chkColor"][$i].$comma;
}
echo $chk_id; // เอา id ตัวนี้ไป เป็น parameter ในเงื่อนไข where
}
// ก็เรียกข้อมูลจาก database มา show
/*
$sql = "select id, x, y , z form tb_xyz WHERE id IN($chk_id) ";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result){
// อะไรก็ว่าไป
}
*/
?>
|
|
|
|
|
Date :
2010-02-01 21:25:16 |
By :
Ninezy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อีก 1 แนวทาง
<tr>
<td style="text-align:center"><input type="checkbox" name="chkColor[]" value="<?=$objResult["job_code"];?>"></td>
<td style="text-align:center"><?=$objResult["job_code"];?></td>
<td style="text-align:center"><input type="hidden" name="job_name[<?=$objResult["job_code"];?>]" value="<?=$objResult["job_name"];?>"><?=$objResult["job_name"];?></td>
<td style="text-align:center"><input type="hidden" name="job_service[<?=$objResult["job_code"];?>]" value="<?=$objResult["job_service"];?>"><?=$objResult["job_service"];?></td>
</tr>
for($i=0;$i<count($_POST["chkColor"]);$i++) {
if(trim($_POST["chkColor"][$i]) != ""){
$color=$_POST["chkColor"][$i];
$jobname=$_POST["job_name"][$color];
$jobservice=$_POST["job_service"][$color];
echo "chkColor $i = $color | jobname = $jobname | jobservice=$jobservice<br>";
}
}
|
|
|
|
|
Date :
2010-02-01 23:24:35 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file name:add_job_2.php
<?
for($i=0;$i<count($_POST["chkColor"]);$i++){
if(trim($_POST["chkColor"][$i]) != ""){
$sql ="INSERT INTO tb_tranction_job (id, ref_job_id) VALUES ('', '".$_POST["chkColor"][$i].'") ";
mysql_query($sql);
}
}
?>
https://www.thaicreate.com/php/php-mysql-add-insert-multiple-record.html
|
|
|
|
|
Date :
2010-02-01 23:29:44 |
By :
peterxp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากค่ะ แต่ยังไม่ได้ลองเลย เดียวไว้มาลองแล้วมาบอกผลนะค่ะ ขอบคุณจริงๆ
|
|
|
|
|
Date :
2010-02-02 23:49:54 |
By :
Ninezy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|