|
|
|
สอบถาม การใช้ foreach() ที่มีตัวแปร หลายตัว ครับ เนื่องจาก สินค้าผมมีหลายไซต์ หลายสีครับ |
|
|
|
|
|
|
|
ปัญหาคือ ไม่สามารถเพิ่ม size ถัดไปที่ ติ๊กถูกได้ครับ
Code (PHP)
//--------------------------เพิ่มSIZEสินค้า 32-----------------------------//
$size32="32/70";
$chkcolor32=$_POST['chkcolor32'];
$color32=$_POST['color32'];
$chknum32=$_POST['chknum32'];
if($_POST["chksize32"]!=""){
if(count($chkcolor32)>0){ // ตรวจสอบ checkbox ว่ามีการเลือกมาอย่างน้อย 1 รายการหรือไม่
foreach($chkcolor32 as $key=>$value){
$strSQL = "INSERT INTO product_size ";
$strSQL .="(Product_Id,Product_Size,Product_Color,size_num)
VALUES ('".$_POST["Product_Id"]."','$size32','".$color32[$value]."','".$chknum32[$value]."')";
$objQuery = mysql_query($strSQL);
}
}
}else{}
if($_POST["chksize34"]!=""){
//--------------------------เพิ่มSIZEสินค้า 34-----------------------------//
$size34="34/75";
$chkcolor34=$_POST['chkcolor34'];
$color34=$_POST['color34'];
$chknum34=$_POST['chknum34'];
if(count($chkcolor34)>0){ // ตรวจสอบ checkbox ว่ามีการเลือกมาอย่างน้อย 1 รายการหรือไม่
foreach($chkcolor34 as $key=>$value){
$strSQL2 = "INSERT INTO product_size ";
$strSQL2 .="(Product_Id,Product_Size,Product_Color,size_num)
VALUES ('".$_POST["Product_Id"]."','$size34','".$color34[$value]."','".$chknum34[$value]."')";
$objQuery2 = mysql_query($strSQL2);
}
}
}
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2015-09-13 23:16:23 |
By :
ifirstinw |
View :
1776 |
Reply :
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เนื่องจากไม่เห็น โค๊ด HTML
Code (PHP)
//--------------------------เพิ่มSIZEสินค้า 32-----------------------------//
//$size32="32/70";
//$chkcolor32=$_POST['chkcolor32']; // เดาเอาว่าเป็น ปุ่มสีบานเย็น
//$color32=$_POST['color32']; // เดาเอาว่าเป็นปุ่ม สี
//$chknum32=$_POST['chknum32']; เดาเอาว่าเป็น textbox จำนวน
if(isset($_POST["chksize32"])){
if(isset($_POST['color32']){ // ตรวจสอบ checkbox ว่ามีการเลือกมาอย่างน้อย 1 รายการหรือไม่
foreach($_POST['color32'] as $key=>$value){
$pd_id=intval($_POST['Product_id']);
$color=mysql_real_escape_string($value);
$num=intval($_POST['chknum32'][$key]);
$strSQL = "INSERT INTO product_size ";
$strSQL .="(Product_Id,Product_Size,Product_Color,size_num)
VALUES ( $pd_Id, '32/70','$color', $num)";
$objQuery = mysql_query($strSQL);
}
}
}
อันอื่นก็ประยุกต์เอานะครับ
ถ้าจะให้ดี เอาส่วนของ HTML มาแสดงดัวยครับ จะได้รู้ว่าข้อมูลที่ส่งมาเป็นอะไรแน่
คอมฯ จะทำงานได้ต้องมี 3 อย่าง INPUT CPU OUTPUT ขาดอะไรไปซักอย่างก็เดาเอาแล้วละ่ครับ
|
|
|
|
|
Date :
2015-09-14 02:07:42 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เป็น input ที่ส่งมาครับ
Code (PHP)
<?php
$setColumn=2;//แสดง3คอลัมน์ต่อ1แถว ถ้าต้องการให้แสดงกี่คอลัมน์ให้กำหนดตรงนี้
$ColumnStart=1;//คอลัมน์เริ่มต้นเป็น 1 เสมอ
$i_32=0;
$strSQL2 = "SELECT * FROM product_color ORDER BY id ASC";
$objQuery2 = mysql_query($strSQL2);
while($objResuut2 = mysql_fetch_array($objQuery2))
{?>
<td width="174" align="center" scope="col"><input name="chkcolor32[]" type="checkbox" id="chkcolor32[]" value="<? echo $i_32;?>">
<input name="color32[]" type="hidden" id="color32[]" value="<?php echo $objResuut2["color"];?>" />
<?php echo $objResuut2["color"];?>
<td width="168" align="center" scope="col"> จำนวน
<input name="chknum32[]" type="text" id="chknum32[]" size="4" ></td>
<?php
if($ColumnStart==$setColumn){//หากคอลัมน์เท่ากับจำนวนคอลัมน์ที่กำหนดไว้
echo '</tr><tr>';//สร้างแท็ก </tr> ปิด เพื่อจบแถว และสร้าง <tr>เพื่อสร้างแถวใหม่
$ColumnStart=0;//เซตเป็น 0 เพื่อเริ่มนับคอลัมน์ใหม่
}
$ColumnStart++;//เพิ่มคอลัมน์ทีละ1คอลัมน์
$i_32++;
}
?>
<?php
$setColumn=2;//แสดง3คอลัมน์ต่อ1แถว ถ้าต้องการให้แสดงกี่คอลัมน์ให้กำหนดตรงนี้
$ColumnStart=1;//คอลัมน์เริ่มต้นเป็น 1 เสมอ
$i_34=0;
$strSQL2 = "SELECT * FROM product_color ORDER BY id ASC";
$objQuery2 = mysql_query($strSQL2);
while($objResuut2 = mysql_fetch_array($objQuery2))
{?>
<td width="174" align="center" scope="col"><input name="chkcolor34" type="checkbox" id="chkcolor34" value="<?php echo $i_34;?>">
<input name="color34[]" type="hidden" id="color34[]" value="<?php echo $objResuut2["color"];?>" />
<?php echo $objResuut2["color"];?>
<td width="168" align="center" scope="col"> จำนวน
<input name="chknum34[]" type="text" id="chknum34[]" size="4"></td>
<P>
<?php
if($ColumnStart==$setColumn){//หากคอลัมน์เท่ากับจำนวนคอลัมน์ที่กำหนดไว้
echo '</tr><tr>';//สร้างแท็ก </tr> ปิด เพื่อจบแถว และสร้าง <tr>เพื่อสร้างแถวใหม่
$ColumnStart=0;//เซตเป็น 0 เพื่อเริ่มนับคอลัมน์ใหม่
}
$ColumnStart++;//เพิ่มคอลัมน์ทีละ1คอลัมน์
$i_34++;
}
?>
|
|
|
|
|
Date :
2015-09-14 07:45:36 |
By :
ifirstinw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมใช้ checkbox เก็บค่า array (0,1,2,....) เเละใช้ hidden เป็นตัวเก็บค่าข้อมูลเเทนครับ
|
|
|
|
|
Date :
2015-09-14 07:48:54 |
By :
ifirstinw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
$setColumn=2;//แสดง3คอลัมน์ต่อ1แถว ถ้าต้องการให้แสดงกี่คอลัมน์ให้กำหนดตรงนี้
$strSQL2 = "SELECT * FROM product_color ORDER BY id ASC";
$objQuery2 = mysql_query($strSQL2);
$tr = ''; $chk_col=0; $color_ar = array();
while($ro = mysql_fetch_assoc($objQuery2)) $color_ar[]=$ro;
//////////////////////////////////////////////////////////////////////////////
$size = array( '32/70','34/75' );
//////////////////////////////////////////////////////////////////////////////
foreach($size as $size_key=>$size_nm){
?>
<tr><td width="174" align="center" colspan="<?php echo $setColumn; ?>" >
<input name="chksize[]" type="checkbox" value="<?php echo $size_key;?>" >
<input name="sizenm[<?php echo $size_key;?>]" type="hidden" value="<?php echo $size_nm;?>" >
<?php echo size_nm;?>
</td></tr>
<?php
$ColumnStart=0;//คอลัมน์เริ่มต้นเป็น 1 เสมอ
foreach($color_ar as $key=>$ro){
if($chk_col==0) echo '<tr>'; // ถ้า column แรก เปิด tag <tr>
echo '
<td>
<table><tr>
<td><input name="color['.$size_key.'][]" type="checkbox" value="'.$ro['color'].'" /> '.$ro['color'].' </td>
<td width=168 align=center > จำนวน <input name="num['.$size_key.'][]" type="text" size=4 ></td>
</tr></table>
</td>';
$chk_col = ($chk_col+1) % $setColumn;
if( $chk_col==0) echo '</tr>'; // ถ้า column สุดท้าย ปิด tag </tr>
}
//////////////////////////// เพิ่ม column ว่าง ให้ครบ
for($chk_col; $chk_col<$setColumn; $chk_col++) echo '<td><td>';
echo '<tr>';
}
Code (PHP)
////////////////////////////////////////////////////////////////////////
//////////////////////////php ตัวรับ ///////////////////////////////////
if(isset($_POST["chksize"])){ // ตรวจสอบ checkbox ของ size
$pd_id=intval($_POST['Product_id']);
foreach($_POST['chksize'] as $size_key){
$size_nm=mysql_real_escape_string($_POST['sizenm'][$size_key])
if(isset($_POST['color'.$size_key]){ // ตรวจสอบ checkbox ว่ามีการเลือกมาอย่างน้อย 1 รายการหรือไม่
foreach(($_POST['color'][$size_key] as $key=>$value ){
$color=mysql_real_escape_string($value);
$num=intval($_POST['chknum'][$size_key][$key]);
$strSQL = "INSERT INTO product_size ";
$strSQL .=" (Product_Id,Product_Size,Product_Color,size_num) ";
$strSQL .=" VALUES ( $pd_Id, '$size_nm','$color', $num)";
mysql_query($strSQL);
}
}
}
}
|
|
|
|
|
Date :
2015-09-14 10:39:52 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แบบนี้ครับ
ส่วนหน้า php ตัวรับ ขึ้น error แบบนี้ครับ
|
|
|
|
|
Date :
2015-09-14 14:03:45 |
By :
ifirstinw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 วงเล็บปิดมันหายไปตัวครับ
ส่วน 170 วงเล็บเปิด เกินมาตัว 5555
ส่วน css ก็แก้ให้ได้ตามต้องการเองนะครับ ผมแค่ยกตัวอยาง โค๊ด
และผมไม่ได้ทดสอบน่ะครับคงมีตกหล่นบ้าง
ปล. อีกนิด
$chk_col++; เพิ่มบันทัดนี้ไปก่อน
32. for($chk_col; $chk_col<$setColumn; $chk_col++) echo '<td><td>';
|
ประวัติการแก้ไข 2015-09-14 14:45:13 2015-09-14 14:48:04
|
|
|
|
Date :
2015-09-14 14:44:26 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บรรทัด 169 ครับ ยังติดอยู่
if(isset($_POST['color'.$size_key])){
|
|
|
|
|
Date :
2015-09-14 15:08:45 |
By :
ifirstinw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(isset($_POST['color'][$size_key])){
|
|
|
|
|
Date :
2015-09-14 15:11:52 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปลี่ยนดูเเล้วก็ยังไม่หายเลยครับผม
|
|
|
|
|
Date :
2015-09-14 15:16:30 |
By :
ifirstinw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 ปิดด้วย ; สงสัยต้องพักแล้ว หลุดหลายตัว
|
|
|
|
|
Date :
2015-09-14 15:37:26 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทดสอบเเล้วครับ ไม่เข้า ฐานข้อมูล เลยครับผม
|
|
|
|
|
Date :
2015-09-14 15:57:45 |
By :
ifirstinw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เช็คชื่อ ตัวแปร ตัวรับตัวส่งให้ดีครับ เหมือนกัน หรือ ต่างกัน แก้ไขให้ถูกครับ chknum กับ num มันคนละตัวกัน
ผมก็เบลอแล้ว หาเอาเองนะครับ
|
|
|
|
|
Date :
2015-09-14 16:04:37 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|