|
|
|
รบกวนด้วยครับ เรื่อง Checkbox แต่ละแถวครับ |
|
|
|
|
|
|
|
แยก php กับ html ออกจากกันให้ฃัดเจน ก็จะมองออก ว่าจะเขียนยังไงไปทางไหน
php เป็นตัว generate html ดังนั้นมันมี priority สูงกว่า html ต้องอยู่ต้นไฟล์
ถ้ายังเขียน สะเปะสะปะ อยู่ก็จะเข้าใจงานยาก
หลักการ: ตรวจเช็ค event การคลิกของ checkbox แล้วส่งค่าผ่าน ajax ไปอัพเดท database
|
|
|
|
|
Date :
2018-02-15 22:07:30 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอตัวอย่างการทำงานได้มั้ยครับ
|
|
|
|
|
Date :
2018-02-16 08:09:12 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จริงๆๆ ผมเขียนไว้แบบนี้ครับ Code (PHP)
<?php
$i = $i + 1;
while($resultpo=mysqli_fetch_array($querypo))
{
?>
<tr>
<td><input name="accept1[]" type="checkbox" id="accept1[]" value= <?php echo $potest ;?> > </td>
<td><center><div class="form-group col-xl-100"><input type="text" name="quotation[]" id="quotation" value="<?php echo $resultpo["QUOTATOIN"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcdate[]" placeholder="2018-01-01" id="vendorcdate" value="<?php echo $resultpo["VCONFDATE"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcqty[]" id="vendorcqty" value="<?php echo $resultpo["VCONFQTY"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="invoice[]" id="invoice" value="<?php echo $resultpo["VINVNO"];?>" class="form-control"></div></center></td>
<td><center><?php echo $resultpo["STATUS"];?></center></td>
<td><center><?php echo $resultpo["PRIORITY"];?></center></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo['NEWITEM']=='Y') echo '✔';?></font></b></center></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo['CMAT']=='Y') echo '✔';?></font></b></center></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo['CDESC']=='Y') echo '✔';?></font></b></center></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo['CQTY']=='Y')?></font></b></center></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo['CPRICE']=='Y')?></font></b></center></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo['CDELDATE']=='Y')?></font></b></center></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo["CADDLINE"]=='Y')?></font></b></td>
<td><font size = '2' color = 'red'> <b><center><?php if($resultpo['CDELLINE']=='Y')?></font></b></center></td>
<td></td>
<td><center><?php echo $resultpo["PONO"];?></center></td>
<td><center><?php echo $resultpo["POLINE"];?></center></td>
<td><center><?php echo $resultpo["MATERIAL"];?></center></td>
<td><center><?php echo $resultpo["DESCR"];?></center></td>
<td><center><?php echo $resultpo["DRAWNO"];?></center></td>
<td><center><?php echo $resultpo["POQTY"];?></center></td>
<td><center><?php echo $resultpo["OPENQTY"];?></center></td>
<td><center><?php echo $resultpo["UPRICE"];?></center></td>
<td><center><?php echo $resultpo["TOTPRICE"];?></center></td>
<td><center><?php echo $resultpo["CUR"];?></center></td>
<td><center><?php echo DateThai ($resultpo["PODATE"]);?></center></td>
<td><center><?php echo DateThai ($resultpo["DELDATE"]);?></center></td>
<td><center><?php echo DateThai ($resultpo["NEWDUEDATE"]);?></center></td>
<td><center><?php echo DateThai ($resultpo["MRPDATE"]);?></center></td>
<td><center><?php echo $resultpo["QCCLASS"];?></center></td>
<td><center><?php echo $resultpo["NOTE"];?></center></td>
<div style="display:none"><input type="text" style="width:190px;" maxlength="100" name="potest[]" id='potest' value="<?php echo $resultpo["PONO"]; echo $_POST['PONO'];?>"></div>
<div style="display:none"><input type="text" style="width:190px;" maxlength="100" name="pono1[]" id='pono1' value="<?php echo $resultpo["PONO"]; echo $_POST['PONO'];?>"></div>
<div style="display:none"><input type="text" style="width:190px;" maxlength="100" name="poline[]" id='poline' value="<?php echo $resultpo["POLINE"]; echo $_POST['POLINE'];?>"></div>
<div style="display:none"><input type="text" style="width:190px;" maxlength="100" name="poline1[]" id='poline1' value="<?php echo $resultpo["POLINE"]; echo $_POST['POLINE'];?>"></div>
<div style="display:none"><input type="text" style="width:190px;" maxlength="100" name="posubline[]" id='posubline' value="<?php echo $resultpo["POSUBLINE"]; echo $_POST['POSUBLINE'];?>"></div>
<div style="display:none"><input type="text" style="width:190px;" maxlength="100" name="posubline1[]" id='posubline1' value="<?php echo $resultpo["POSUBLINE"]; echo $_POST['POSUBLINE'];?>"></div>
<div style="display:none"><input type="text" style="width:190px;" maxlength="100" name="status1[]" id='status1' value="<?php echo $resultpo["STATUS"]; echo $_POST['STATUS'];?>"></div>
</tr>
<?php
$i++;
}
?>
<?php
}
?>
<?php
}
?>
|
|
|
|
|
Date :
2018-02-16 09:00:36 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ยากครับ
1. SELECT * FROM WHERE ... (ข้อมูลที่ต้องการ UPDATE)
2.mysqli_query_fetch (เอา Row)
3. Loop while + HTML
4. $i = 0;
<?php
$i = 0 ;
while(())
{
<input type = "text" name = "txt1[]" values = "<?php echo $row["Name...."];?>">
<input type= "checkbox" name= "UP[]" id = "UP" values= "<?php echo $i++;?>">
<submit>
}
?>
<?php
$IDs=$_POST['UP'];
if(isset($_POST["submit"]))
{
if (empty($IDs) || $IDs==0) {
echo "<p align='center'>UPDATE BY CHECKBOX !!!</p>";
}else{
foreach ($_POST["UP"] as $i)
{
UPDATE .... SET ....
NAME = {$_POST["txt1"] [$i]}
WHERE ID = ......
}
}
}
?>
แนวทางครับ
|
|
|
|
|
Date :
2018-02-16 09:39:42 |
By :
Hararock |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างครับ ลอง Build ดู
Code (PHP)
<?php
$i=0;
while($resultpo=mysqli_fetch_array($querypo))
{
?>
<tr>
<td><input name="accept[]" type="checkbox" id="accept[]" value= <?php echo $i ;?> > </td>
<td><center><div class="form-group col-xl-100"><input type="text" name="quotation_<?=$i?>" value="<?php echo $resultpo["QUOTATOIN"];?>" class="form-control"></div></center></td>
</tr>
<?php
$i++;
}
?>
action
Code (PHP)
<?php
for($i=0;$i<=count($_POST['accept']);$i++)
{
echo "array :".$accept[$i]." QUOTATOIN :".$_POST['quotation_'.$accept[$i]];
}
?>
Concept Keyman อยู่ที่ accept[] ซึ่งมีการระบุตำแหน่ง checked MultiArray ไว้เรียบร้อย เมื่อมีการ checked จะนำค่า value ไป focus $i ใน name="quotation_<?=$i?> จะได้ตำแหน่งที่ถูกต้อง
|
ประวัติการแก้ไข 2018-02-16 09:43:50 2018-02-16 09:45:30
|
|
|
|
Date :
2018-02-16 09:43:09 |
By :
dudesaranyu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่าง Example ลอง Build ดูครับ
Code (PHP)
<?php
$i=0;
while($resultpo=mysqli_fetch_array($querypo))
{
?>
<tr>
<td><input name="accept[]" type="checkbox" id="accept[]" value= <?php echo $i ;?> > </td>
<td><center><div class="form-group col-xl-100"><input type="text" name="quotation_<?=$i?>" value="<?php echo $resultpo["QUOTATOIN"];?>" class="form-control"></div></center></td>
</tr>
<?php
$i++;
}
?>
action
Code (PHP)
<?php
for($i=0;$i<=count($_POST['accept']);$i++)
{
echo "array :".$accept[$i]." QUOTATOIN :".$_POST['quotation_'.$accept[$i]];
}
?>
Concent ในที่นี้อ้างอิงจาก array ใน accept ซึ่งระบุแต่งแหน่งการวน Loop อย่างชัดเจน ซึ่งเมื่อทำการ checked ค่าตำแหน่งจะเข้าไปอยู่ใน $_POST['accept'] และค่าใน accept นั้นจะไป focus ที่ $i ของ quotation_<?=$i?>
|
ประวัติการแก้ไข 2018-02-16 09:51:12
|
|
|
|
Date :
2018-02-16 09:50:24 |
By :
dudesaranyu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณรับ เดี่ยวจะลอง 2 แนวทางดูนะครับ
|
|
|
|
|
Date :
2018-02-16 10:09:10 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อีกนิดครับ ตัว Update ใส่แบบนี้มั้ยครับ แต่ผมใส่แล้ว วนไม่ออกเลยครับ ตอนนี้ผมใส่แบบนี้นะครับ
Code (PHP)
<td><input name="accept[]" type="checkbox" id="accept[]" value= <?php echo $i ;?> > </td>
<td><center><div class="form-group col-xl-100"><input type="text" name="quotation_<?=$i?>" id="quotation" value="<?php echo $resultpo["QUOTATOIN"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcdate_<?=$i?>" placeholder="2018-01-01" id="vendorcdate" value="<?php echo $resultpo["VCONFDATE"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcqty_<?=$i?>" id="vendorcqty" value="<?php echo $resultpo["VCONFQTY"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="invoice_<?=$i?>" id="invoice" value="<?php echo $resultpo["VINVNO"];?>" class="form-control"></div></center></td>
if($_POST["submit"]=="update")
{
for($i=0;$i<=count($_POST['submit']);$j++)
{
/*$pono=$_POST["checkbox"];*/
$update="update PUR_POVEN SET
QUOTATOIN ='".$quotation[$j]."'
,VCONFDATE='".$vendorcdate[$j]."'
,VCONFQTY ='".$vendorcqty[$j]."'
,VINVNO = '".$invoice[$j]."'
,VDELBY = '$default'
,VACCNPODATE = NOW()
,VACCNPOBY = '$default'";
$update.="where PONO = ".$potest[$j]." AND POLINE = ".$poline[$j]." AND POSUBLINE = ".$posubline[$j]."";
$queryupdate=mysqli_query($conn, $update);
}
if ($queryupdate)
{
for($b=0;$b<$i;$b++)
{
$updatepo = "update PUR_POV SET STATUS = 'PROCESS'";
/*$updatepo.="where PONO = ".$potest[$j]." AND POLINE = ".$poline[$j]." AND POSUBLINE = ".$posubline[$j]." AND STATUS = 'NEW'";*/
$updatepo.="where PONO = ".$pono1[$b]." AND POLINE = ".$poline1[$b]." AND POSUBLINE = ".$posubline1[$b]." AND STATUS = 'NEW'";
$queryupdatepo=mysqli_query($conn,$updatepo);
}
if ($queryupdatepo)
{
echo "<script>alert('Update Complete ✔✔'); location.href='accept_edit.php?material=$material&potest=$potest';</script>";
}
else echo "<script>alert('Update queryupdatepo Fail!!!'); location.href='accept_edit.php?material=$material';</script>";return 0;
}
else echo "<script>alert('Update queryupdate Fail!!!'); location.href='accept_edit.php?material=$material';</script>";return 0;
}
|
ประวัติการแก้ไข 2018-02-16 10:38:42
|
|
|
|
Date :
2018-02-16 10:36:13 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เกือบได้ล่ะครับ แต่เหมือนว่า ปุ่ม เลือก Check box ไม่ทำงานอ่ะครับ ผมใส่แบบนี้นะครับ
Code (PHP)
<td><input name="accept[]" type="checkbox" id="accept[]" value= <?php echo $i ;?> > </td>
<td><center><div class="form-group col-xl-100"><input type="text" name="quotation_<?=$i?>" id="quotation" value="<?php echo $resultpo["QUOTATOIN"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcdate_<?=$i?>" placeholder="2018-01-01" id="vendorcdate" value="<?php echo $resultpo["VCONFDATE"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcqty_<?=$i?>" id="vendorcqty" value="<?php echo $resultpo["VCONFQTY"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="invoice_<?=$i?>" id="invoice" value="<?php echo $resultpo["VINVNO"];?>" class="form-control"></div></center></td>
for($i=0;$i<=count($_POST['accept']);$i++)
{
$updatepo = "update PUR_POV SET STATUS = 'PROCESS'";
/*$updatepo.="where PONO = ".$potest[$j]." AND POLINE = ".$poline[$j]." AND POSUBLINE = ".$posubline[$j]." AND STATUS = 'NEW'";*/
$updatepo.="where PONO = ".$pono1[$i]." AND POLINE = ".$poline1[$i]." AND POSUBLINE = ".$posubline1[$i]." AND STATUS = 'NEW'";
$queryupdatepo=mysqli_query($conn,$updatepo);
}
if ($queryupdatepo)
{
echo "<script>alert('Update Complete ✔✔'); location.href='accept_edit.php?material=$material&potest=$potest';</script>";
}
else echo "<script>alert('Update queryupdatepo Fail!!!'); location.href='accept_edit.php?material=$material';</script>";return 0;
}
|
|
|
|
|
Date :
2018-02-16 13:16:46 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเพิ่มแล้วครับ เป็น
<td><input name="accept[]" type="checkbox" id="accept[]" value= <?php echo $i++ ;?> > </td>
แต่เวลา update ผิดบรรทัดครับ คิดว่า น่า จะ คำนวณ ไม่ถูกครับ ช่วยด้วยครับ อีกนิดเดียวครับ
|
|
|
|
|
Date :
2018-02-16 13:35:20 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<td><center>
<div class="form-group col-xl-100">
<input type="text" name="vendorcqty_<?=$i?>" id="vendorcqty" value="<?php echo $resultpo["VCONFQTY"];?>" class="form-control">
</div>
</center>
</td>
เปลี่ยน
Code (PHP)
<td><center>
<div class="form-group col-xl-100">
<input type="text" name="vendorcqty[]" id="vendorcqty" value="<?php echo $resultpo["VCONFQTY"];?>" class="form-control">
</div>
</center>
</td>
Multiple Update Array [ ]
Multiple Insert Array [ ]
ใช้ [ ] ครับ
|
|
|
|
|
Date :
2018-02-16 13:36:04 |
By :
HaraRock ไม่ได้ login Clear BS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ยัง Update ผิดอยู่ครับ
|
|
|
|
|
Date :
2018-02-16 13:41:19 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เย้ๆๆ ได้แล้วครับ
Code (PHP)
<td><input name="accept[]" type="checkbox" id="accept[]" value= <?php echo $i++;?> > </td>
<td><center><div class="form-group col-xl-100"><input type="text" name="quotation[]" id="quotation" value="<?php echo $resultpo["QUOTATOIN"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcdate[]" placeholder="2018-01-01" id="vendorcdate" value="<?php echo $resultpo["VCONFDATE"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcqty[]" id="vendorcqty" value="<?php echo $resultpo["VCONFQTY"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="invoice[]" id="invoice" value="<?php echo $resultpo["VINVNO"];?>" class="form-control"></div></center></td>
if ($queryupdate)
{
/*for($b=0;$b<$i;$b++)*/
for($i=0;$i++<=count($_POST['accept']);$i++)
{
$updatepo = "update PUR_POV SET STATUS = 'PROCESS'";
/*$updatepo.="where PONO = ".$potest[$j]." AND POLINE = ".$poline[$j]." AND POSUBLINE = ".$posubline[$j]." AND STATUS = 'NEW'";*/
$updatepo.="where PONO = ".$pono1[$i]." AND POLINE = ".$poline1[$i]." AND POSUBLINE = ".$posubline1[$i]." AND STATUS = 'NEW'";
$queryupdatepo=mysqli_query($conn,$updatepo);
}
if ($queryupdatepo)
{
echo "<script>alert('Update Complete ✔✔'); location.href='accept_edit.php?material=$material&potest=$potest';</script>";
}
else echo "<script>alert('Update queryupdatepo Fail!!!'); location.href='accept_edit.php?material=$material';</script>";return 0;
ขอบคูณทุกท่านที่ให้แนวทางมานะครับ
|
|
|
|
|
Date :
2018-02-16 13:50:38 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูที่ No.5
-------------------------
foreach และ SQL UPDATE SET id = {$_POST['id'][$I]}
row ที่ update ต้อง { $_POST[' '] [$i]}
และ ดู loop for ครับของคุณเขียนถูกไหม
ex = นี้ insert หลัก การ update เหมือนๆกัน
Code (PHP)
foreach($_POST['checkbox'] as $i)
{
$insert="INSERT INTO stock_supplies.bill_out
(BillNo,
ProductID,
ProductIDList,
QTY,
Price,
CurrencyID,
Monney,
Remark,
AdminID,
DeptID)
VALUES(
'$codes',
'{$_POST['ProductID'][$i]}',
'{$_POST['ProductIDList'][$i]}',
'{$_POST['QTYH'][$i]}',
'{$_POST['PriceH'][$i]}',
'{$_POST['CurrencyIDH'][$i]}',
'$Money',
'{$_POST['Remark'][$i]}',
'$AdminID',
'$DeptID') ";
$ASD=mysqli_query($insert)
}
|
|
|
|
|
Date :
2018-02-16 13:53:34 |
By :
HaraRock ไม่ได้ login Clear BS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เซงเลยครับ เข้าผิดอยู่ ครับ ใครพอรบกวนช่วยชี้แนะด้วครับ อัพเดทผิดแถวนะครับ Code เป็นแบบนี้แล้วครับ
Code (PHP)
<td><input name="accept[]" type="checkbox" id="accept[]" value= <?php echo $i++;?> > </td>
<td><center><div class="form-group col-xl-100"><input type="text" name="quotation[]" id="quotation" value="<?php echo $resultpo["QUOTATOIN"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcdate[]" placeholder="2018-01-01" id="vendorcdate" value="<?php echo $resultpo["VCONFDATE"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="vendorcqty[]" id="vendorcqty" value="<?php echo $resultpo["VCONFQTY"];?>" class="form-control"></div></center></td>
<td><center><div class="form-group col-xl-100"><input type="text" name="invoice[]" id="invoice" value="<?php echo $resultpo["VINVNO"];?>" class="form-control"></div></center></td>
if ($queryupdate)
{
/*for($b=0;$b<$i;$b++)*/
for($i=0;$i++<=count($_POST['accept']);$i++)
{
$updatepo = "update PUR_POV SET STATUS = 'PROCESS'";
/*$updatepo.="where PONO = ".$potest[$j]." AND POLINE = ".$poline[$j]." AND POSUBLINE = ".$posubline[$j]." AND STATUS = 'NEW'";*/
$updatepo.="where PONO = ".$pono1[$i]." AND POLINE = ".$poline1[$i]." AND POSUBLINE = ".$posubline1[$i]." AND STATUS = 'NEW'";
$queryupdatepo=mysqli_query($conn,$updatepo);
}
if ($queryupdatepo)
{
echo "<script>alert('Update Complete ✔✔'); location.href='accept_edit.php?material=$material&potest=$potest';</script>";
}
else echo "<script>alert('Update queryupdatepo Fail!!!'); location.href='accept_edit.php?material=$material';</script>";return 0;
|
|
|
|
|
Date :
2018-02-16 13:56:58 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยดันให้หน่อยครับ อีกนิดครับ
|
|
|
|
|
Date :
2018-02-16 14:58:47 |
By :
owenback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|