|
|
|
จะทำ insert multiple checkbox เก็บลงฟิลด์เดียวค่ะ โดยประยุกต์จาก delete multiple checkbox แต่บันทึกลงฐานข้อมูลไม่ได้ค่ะ ลอง echo ออกมา ได้ค่าเป็นคำว่า Array ค่ะ |
|
|
|
|
|
|
|
จะทำ insert multiple checkbox
โดยจะเก็บค่า ลงฟิลเดียวกันโดยใช้ " , " เป็นตัวคั่นค่ะ
โดยประยุกต์จาก delete multiple checkbox
ตามบทความนี้ https://www.thaicreate.com/php/php-mysql-multiple-checkbox-delete-record.html
แต่บันทึกลงฐานข้อมูลไม่ได้ค่ะ ลอง echo ออกมา ได้ค่าเป็นคำว่า Array ค่ะ
ฟิลที่เก็บ ชื่อ Type_ID เป็น varchar ขนาด 50 ค่ะ
ขอคำแนะนำด้วยนะคะ
หน้าฟอร์ม
form action="New_QQArea_ApplyAddSave.php" name="frmAdd" method="post" OnSubmit="return fncSubmit();">
<table width="472" border="0" align="center" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td width="184" align="left" valign="top">เลขรับหนังสือ</td>
<td width="5" valign="top"><strong>:</strong></td>
<td width="217"><input name="txtAut_ID" type="text" id="txtAut_ID" size="10" /></td>
</tr>
<tr>
<td align="left" valign="top">วันที่รับหนังสือ</td>
<td valign="top"><strong>:</strong></td>
<td align="left" valign="top"><?php require_once('test_datt.php'); ?></td>
</tr>
<tr>
<td align="left" valign="top">ผู้ประกอบการ</td>
<td align="left" valign="top"><strong>:</strong></td>
<td align="left" valign="top"><?php require_once('Data_search_cor.php'); ?></td>
<td width="14" align="left" valign="top">
<script language="javascript">
function js_popup(theURL,width,height) { //v2.0
leftpos = (screen.availWidth - width) / 2;
toppos = (screen.availHeight - height) / 2;
window.open(theURL, "viewdetails","width=" + width + ",height=" + height + ",left=" + leftpos + ",top=" + toppos);
}
</script></td>
<td width="65" align="left" valign="top"><button onClick="js_popup('QQ_Area_CorAddFrom_PopUp.php',700,600); return false;"> เพิ่ม </button></td>
</tr>
<tr>
<td align="left" valign="top">โรงอุตสาหกรรม</td>
<td align="left" valign="top"><strong>:</strong></td>
<td align="left" valign="top"><?php require_once('Data_search_Fac.php'); ?></td>
<td align="left" valign="top"></td>
<td align="left" valign="top"><button onClick="js_popup('QQ_Area_FacAddFrom_popup.php',700,600); return false;"> เพิ่ม </button></td>
</tr>
<tr>
<td align="left" valign="top">เครื่องหมายการค้า</td>
<td align="left" valign="top"><strong>:</strong></td>
<td align="left" valign="top"><?php require_once('Data_search_trademarks.php'); ?></td>
<td align="left" valign="top"></td>
<td align="left" valign="top"><button onClick="js_popup('QQ_Area_TrademarksAddFrom_popup.php',700,500); return false;"> เพิ่ม </button></td>
</tr>
<tr>
<td align="left" valign="top"> </td>
<td align="left" valign="top"> </td>
<td align="left" valign="top"> </td>
<td align="left" valign="top"></td>
<td align="left" valign="top"> </td>
</tr>
</table>
<?php
$objDB = mysql_select_db("excepttaxdb_new");
mysql_query("SET NAMES UTF8");
$strSQL = "SELECT * FROM type";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="497" border="1">
<tr>
<th width="434"> <div align="center">ชนิดน้ำผลไม้ / น้ำพืชผัก</div></th>
<th width="47"> <div align="center">เลือก </div></th>
</tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td> <?php echo $objResult["Type_Name"];?></td>
<td align="center"><input type="checkbox" name="chkType[]" value="<?php echo $objResult["Type_ID"];?>"></td>
</tr>
<?php
}
?>
</table>
<table width="472" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="19" align="left"> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td width="193" height="38" align="left">น้ำผักผลไม้น้ำชนิดอื่น ๆ</td>
<td width="10">:</td>
<td width="244"><?php require_once('Data_search_type.php'); ?></td>
<td width="47"><button onClick="js_popup('QQ_Area_TypeAddFrom_popup.php',700,500); return false;"> เพิ่ม </button></td>
</tr>
<tr>
<td height="38" align="left">ปริมาตร</td>
<td>:</td>
<td><?php require_once('Data_search_capacitance.php'); ?></td>
<td><button onClick="js_popup('QQ_Area_CapacitanceAddFrom_popup.php',700,500); return false;"> เพิ่ม </button></td>
</tr>
<tr>
<td height="22" align="left">หน่วยของปริมาตร</td>
<td>:</td>
<td colspan="2"><label>
<input type="radio" name="txtunit" value="มิลลิลิตร" id="unit_0" />
มิลลิลิตร</label>
<label>
</label>
<label>
<input type="radio" name="txtunit" value="ลิตร" id="unit_1" />
ลิตร</label>
<label>
<input type="radio" name="txtunit" value="ซีซี" id="unit_2" />
ซีซี
</label></td>
</tr>
<tr>
<td height="57" align="left">บรรจุภัณฑ์</td>
<td>:</td>
<td><?php require_once('Data_search_ package.php'); ?></td>
<td><button onClick="js_popup('QQ_Area_PackageAddFrom_popup.php',700,500); return false;"> เพิ่ม </button> </td>
</tr>
</table>
<br />
<br />
<p>
<? $date_input = date("Y-m-d");//วันที่บันทึกข้อมูล?>
<input type="hidden" name="txtInput_date" size="30" id="txtInput_date" value="<? echo $date_input ?>"/>
<input type="hidden" name="txtResults" size="30" id="txtResults" value="รอผล"/>
<input type="hidden" name="txtAnalysis_result" size="30" id="txtAnalysis_result" value="รอผล"/>
<input type="hidden" name="txtApproval_results" size="30" id="txtApproval_results" value="รอผล"/>
<input type="hidden" name="txtApproved_Number" size="30" id="txtApproved_Number" value="รอผล"/>
<input type="submit" name="submit" value="เพิ่มข้อมูล" />
</p>
</form>
ไฟล์ save
<?
$Aut_Number =$_POST["txtAut_ID"];
//$Prompted_Date =$_POST["dateInput"];
$date = $_POST["dateInput"];
$day = substr($date, 0, 2);
$month = substr($date, 3, 2);
$year = substr($date, 6, 4);
$year2=$year-543;
$dateInputtt=$year2."-".$month."-".$day;
//echo $dateInput;
$ID_Cor =$_POST["ID_Cor"];
$Fac_ID =$_POST["Fac_ID"];
$Trade_ID =$_POST["Trade_ID"];
$Type_ID =$_POST["chkType"];
$namenew = explode(',' , $Type_ID);
$CC_ID =$_POST["CC_ID"];
$unit =$_POST["txtunit"];
$Pak_ID =$_POST["Pak_ID"];
//$Main_Ingredient =$_POST["txtMain_Ingredient"];
$Input_date =$_POST["txtInput_date"];
//$Standard_ratio =$_POST["txtStandard_ratio"];
$Results =$_POST["txtResults"];
$Analysis_result =$_POST["txtAnalysis_result"];
$Approval_results =$_POST["txtApproval_results"];
$Approved_Number =$_POST["txtApproved_Number"];
//$Why_not =$_POST["txtWhy_not"];
$Recording_date =$_POST["txtRecording_time"];
$Username =$_SESSION['UserID'];
$DepID =$_SESSION['DepID'];
$Aut_ID =$_POST["txtAut_ID"].$dateInputtt;
$objConnect =include("conn.php");
$objDB = mysql_select_db("excepttaxdb_new");
mysql_query("SET NAMES UTF8");
for($i=0;$i<count($_POST["chkType"]);$i++)
{
if($_POST["chkType"][$i] != "")
{
$strSQL = "INSERT INTO authorization ";
$strSQL .="(Aut_ID,Aut_Number,Prompted_Date,ID_Cor,Fac_ID,Trade_ID,Type_ID,CC_ID,unit,Pak_ID,Input_date,Results,Analysis_result,Approval_results,Recording_date,Approved_Number,Username,DepID) ";
$strSQL .="VALUES ";
$strSQL .="('$Aut_ID','$Aut_Number','$dateInputtt','$ID_Cor','$Fac_ID','$Trade_ID','$Type_ID','$CC_ID','$unit','$Pak_ID','$Input_date','$Results','$Analysis_result','$Approval_results','$Recording_date','$Approved_Number','$Username','$DepID')";
$objQuery = mysql_query($strSQL);
}
}
if($objQuery)
{
echo "บันทึกข้อมูลแล้ว!!!"."<br>".'<a href="New_QQArea_ApplyAddFrom222.php">คลิกที่นี่</a> เพื่อเพิ่มข้อมูลอีกครั้ง';
}
else
{
echo "<font color='#FF0000'><h4>ไม่สามารถบันทึกข้อมูลได้!!!</h4></font>"."<br>";
echo "กรุณาตรวจสอบความถูกต้องของข้อมูลอีกครั้งค่ะ"."<br> ";
echo '<a href="javascript:history.back();">คลิกที่นี่</a>เพื่อกลับไปแก้ไขข้อมูล';
echo "ไม่สามารถบันทึกข้อมูลได้ เนื่องจาก [".$strSQL."]";
}
?>
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2015-01-19 07:41:12 2015-01-19 07:42:29 2015-01-19 07:58:21
|
|
|
|
|
Date :
2015-01-19 07:23:22 |
By :
momiya123 |
View :
6447 |
Reply :
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$_POST["chkType"] เป็น array อยู่แล้วครับ
18.$Type_ID =$_POST["chkType"];
19.$namenew = explode(',' , $Type_ID);
แก้เป็น
19.$namenew = $_POST["chkType"];
$Type_ID = implode( ',', $namenew);
|
ประวัติการแก้ไข 2015-01-19 08:58:34
|
|
|
|
Date :
2015-01-19 08:56:48 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-01-19 08:56:48
รายละเอียดของการตอบ ::
บันทึกลงฐานข้อมูลได้แล้วค่ะ
แต่ยังติดตรงที่ มันแจ้งขี้นมาว่าบันทึกไม่ได้ค่ะ ( แต่ไปดูในฐานข้อมูล ข้อมูลถูกบันทึกลงไปแล้ว)
***แล้วมันมี ข้อมูลที่บันทึกลงไปในฟิลเดียวกันค่ะ ทั้ง ๆ ที่ ควรจะแยกกัน
รูปค่ะ
อันนี้โค้ดค่ะ
Code (PHP)
$Username =$_SESSION['UserID'];
$DepID =$_SESSION['DepID'];
Code (PHP)
for($i=0;$i<count($_POST["chkType"]);$i++)
{
if($_POST["chkType"][$i] != "")
{
$strSQL = "INSERT INTO authorization ";
$strSQL .="(
Aut_ID,
Aut_Number,
Prompted_Date,
ID_Cor,
Fac_ID,
Trade_ID,
Type_ID,
CC_ID,
unit,
Pak_ID,
Input_date,
Results,
Analysis_result,
Approval_results,
Recording_date,
Approved_Number,
Username,
DepID) ";
$strSQL .="VALUES ";
$strSQL .="(
'$Aut_ID',
'$Aut_Number',
'$dateInputtt',
'$ID_Cor',
'$Fac_ID',
'$Trade_ID',
'$Type_ID',
'$CC_ID',
'$unit',
'$Pak_ID',
'$Input_date',
'$Results',
'$Analysis_result',
'$Approval_results',
'$Recording_date',
'$Approved_Number',
'$Username',
'$DepID')";
$objQuery = mysql_query($strSQL);
}
}
if($objQuery)
{
echo "บันทึกข้อมูลแล้ว!!!"."<br>".'<a href="New_QQArea_ApplyAddFrom222.php">คลิกที่นี่</a> เพื่อเพิ่มข้อมูลอีกครั้ง';
}
else
{
echo "<font color='#FF0000'><h4>ไม่สามารถบันทึกข้อมูลได้!!!</h4></font>"."<br>";
echo "กรุณาตรวจสอบความถูกต้องของข้อมูลอีกครั้งค่ะ"."<br> ";
echo '<a href="javascript:history.back();">คลิกที่นี่</a>เพื่อกลับไปแก้ไขข้อมูล';
echo "ไม่สามารถบันทึกข้อมูลได้ เนื่องจาก [".$strSQL."]";
}
ขอบคุณมากนะคะ
|
|
|
|
|
Date :
2015-01-19 10:30:04 |
By :
momiya123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$Type_ID = implode( ',', $namenew); ควรจะได้ 1234,5678
ยกเว้น ',' ตรงสีแดงจะ ไม่ได้ใส่ไว้ ถึงติดกัน
แต่จากโค๊ดใหม่
Code (PHP)
for($i=0;$i<count($_POST["chkType"]);$i++)
{
if($_POST["chkType"][$i] != "")
{
$strSQL = "INSERT INTO authorization ";
$strSQL .="(
ก็ไม่ควรจะใช้ $TypeID เพราะ มันรวมกัน
ก็ควรจะใช้ $_POST["chkType"][$i] เป็นตัวแปรโดยตรง แทน $TypeID
|
|
|
|
|
Date :
2015-01-19 11:06:06 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ้อ จากความเห็น 3 คงต้องเอา for loop ออกครับ
Code (PHP)
for($i=0;$i<count($_POST["chkType"]);$i++)
{
if($_POST["chkType"][$i] != "")
{
เพราะ for loop อันนี้ทำให้ insert ซ้ำกัน ครับ
ก็หันกลับมาใช้ อันเดิม
$TypeID=implode( ',' , $_POST['chkType']);
|
|
|
|
|
Date :
2015-01-19 11:12:57 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 6 เขียนโดย : momiya123 เมื่อวันที่ 2015-01-19 11:11:48
รายละเอียดของการตอบ ::
ลองแก้เป็น แบบนี้ดูครับ
Code (PHP)
$strSQL = "INSERT INTO authorization ";
$strSQL .=" set
Aut_ID = '$Aut_ID',
Aut_Number='$Aut_Number',
Prompted_Date='$dateInputtt',
ID_Cor='$ID_Cor',
Fac_ID='$Fac_ID',
Trade_ID='$Trade_ID',
Type_ID='$Type_ID',
CC_ID='$CC_ID',
unit='$unit',
Pak_ID='$Pak_ID',
Input_date='$Input_date',
Results='$Results',
Analysis_result='$Analysis_result',
Approval_results='$Approval_results',
Recording_date='$Recording_date',
Approved_Number='$Approved_Number',
Username='$Username',
DepID='$DepID'
";
แบบนี้จะไม่หลงตัวแปร
|
|
|
|
|
Date :
2015-01-19 11:20:03 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก
for($i=0;$i<count($_POST["chkType"]);$i++)
เป็น
if($_POST['chkType'])
|
|
|
|
|
Date :
2015-01-19 11:24:23 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
explode(',', $typeid_field); จะได้ ค่าเป็นอาเรย์ของแต่ละไอดี
ex. เวลาแก้ไข
Code (PHP)
$selected_typeid = explode(',', $typeid_field);
// in loop
<input type="checkbox" name="chkType[]" value="<?php echo $objResult["Type_ID"];?>"<?=in_array($objResult['Type_id'], $selected_typeid) ? ' checked="checked"' : '';?>>
|
ประวัติการแก้ไข 2015-01-19 12:00:22 2015-01-19 12:04:00
|
|
|
|
Date :
2015-01-19 11:58:53 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|