|
|
|
มีปัญหาเกี่ยวกับการส่งค่าจาก popup ไปอีก form เพื่อ insert / update ลงฐานข้อมูล |
|
|
|
|
|
|
|
คือผมส่งค่าจาก form หลัก ไปแสดงบน popup โดยใช้ checkbox อ่ะครับ แล้วใน popup จะมี textbox ให้กรอกเหตุผลที่ไม่อนุมัติ เมื่อกรอกเสร็จกดปุ่ม "ยืนยัน" ก็ให้ส่งค่าแต่ละ record ใน popup ไปยัง formupdate อ่ะครับ ผมเขียนไม่ถูกอ่ะครับ ใครก็ได้ช่วยทีนะครับ
Code (form หลัก)
<form id="approve" name="approve" action="shpaypackagesave.php?Req_id=<?=$_GET["Req_id"];?>" method="post">
<h3>อนุมัติการจ่ายวัสดุจาก<?=$_SESSION["row_level"];?></h3>
<div class="row">
<div class="col-md-4"><h4>เลขที่คำสั่ง : <?php echo $objResult["preface_no"];?> / <?php echo $objResult["preface_year"];?></h4></div>
<div class="col-md-6"><h4>วันที่เริ่มปฏิบัติงาน : <?php echo Datetimeth($objResult["event_datestart"]);?></h4></div>
</div>
<div class="row">
<div class="col-md-12"><h4>ชื่อคำสั่ง : <?php echo $objResult["preface_subject"];?></h4></div>
</div>
<div class="row">
<div class="col-md-3"><h4>เลขที่ใบเบิก : <?=$_GET["Req_id"];?></h4></div>
<div class="col-md-5"><h4>ผู้เบิก : <?php echo $objResult["prefix_name"].$objResult["staf_name"]." ".$objResult["staf_last"]; ?></h4></div>
<div class="col-md-4"><h4>วันที่เบิก : <?=Datetimeth($objResult["Req_date"]);?></h4></div>
</div>
<table id="approve" class="table table-bordered">
<thead>
<th class="info"><center><input name="CheckAll" type="checkbox" id="CheckAll" value="Y" onClick="ClickCheckAll(this);"></center></th>
<th class="info"><center>ชื่อวัสดุ</center></th>
<th class="info"><center>จำนวน</center></th>
<th class="info"><center>หน่วยนับ</center></th>
<th class="info"><center>สถานะวัสดุที่เบิก</center></th>
</thead>
<? $i=0; do { $i++ ?>
<tr align="center">
<td><center>
<?php
if($objResult["status_id"] == '05')
{?>
<input name="checksave[]" id="checksave<?php echo $i;?>" type="checkbox" value="<?=$objResult["Rqdetail_id"];?>" onClick="check(this);">
<? }
else if($objResult["status_id"] == '12')
{
echo "<font color=\"green\">อนุมัติการจ่ายวัสดุแล้ว</font>";
}
else if($objResult["status_id"] == '13')
{
echo "<font color=\"red\">ไม่อนุมัติการจ่ายวัสดุ</font>";
} ?> </center></td>
<td>
<input type="hidden" name="staf_id" id="staf_id" value="<?=$objResult["staf_id"];?>">
<input type="hidden" id="Req_id" name="Req_id" value="<?=$_GET["Req_id"];?>">
<input type="hidden" value="<?=$objResult["Eq_id"];?>" name="txt_id<?=$objResult["Rqdetail_id"];?>" id="txt_id">
<input type="hidden" value="<?=$objResult["Eq_name"];?>" name="txt_name<?=$objResult["Rqdetail_id"];?>" id="txt_name">
<?php echo $objResult["Eq_name"]; ?>
</td>
<td>
<input type="hidden" value="<?=$objResult["Eq_total"];?>" name="txt_total<?=$objResult["Rqdetail_id"];?>" id="txt_total">
<?php echo $objResult["Rq_quantity1"]; ?>
<input type="hidden" value="<?=$objResult["Rq_quantity1"];?>" name="txt_numreq<?=$objResult["Rqdetail_id"];?>" id="txt_numreq">
</td>
<td>
<input type="hidden" value="<?=$objResult["Unit_name"];?>" name="txt_unit<?=$objResult["Rqdetail_id"];?>">
<?php echo $objResult["Unit_name"]; ?>
</td>
<td>
<input type="hidden" value="<?=$objResult["status_idmain"];?>" name="txt_idmain<?=$objResult["Rqdetail_id"];?>">
<?php
if ($objResult["status_idmain"] == 1){
echo "<font color=\"green\">เบิกได้</font>";
}else if($objResult["status_idmain"] == 2){
echo "<font color=\"red\">แจ้งความต้องการใช้</font>";
}
?>
</td>
<td hidden="true" align="center"><? if($objResult["status_id"] == '04'){ ?>
<? } ?>
</td>
</tr>
<?php } while($objResult = mysql_fetch_array($objQuery)); ?>
</table>
<? if($num_row != 0){ ?>
<center>
<input type="submit" id="Submit" name="Submit" class="btn btn-info btn-sm" value="อนุมัติ" onClick="return onSave(this);" disabled />
<script language="javascript">
function dontSave()
{
window.open('','new_window1','status=1,scrollbars=1,resizable=0,menu=no,width=700,height=320,left=100,top=300');
document.approve.action = "shpayreason.php"
document.approve.target = "new_window1"
document.approve.submit();
}
</script>
<input type="submit" name="unSubmit" id="unSubmit" class="btn btn-info btn-sm" value="ไม่อนุมัติ" onClick="Javascript:dontSave();" disabled />
|
<a href="shpaypackage.php"><button type="button" class="btn btn-warning btn-sm">ย้อนกลับ</button></a><br><br><br><br></center>
<? }else{
$statusid = 12;
$date = date("Y-m-d H:i:s");
$Req_id = $_GET["Req_id"];
$strSQL = "UPDATE tb_request SET ";
$strSQL .="Stokout_date = '".$date."',status_id = '".$statusid."' WHERE Req_id = '".$Req_id."'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
if($objQuery)
{
header("location:shpaypackage.php");
}
}
?>
<input type="hidden" name="hdnCount" value="<?php echo $i;?>">
</form>
Code (popup.php)
<? session_start();
include("datetime.php");
include("Timeth.php");
include("DBcon.php");
?>
<form name="frmPopup" method="post" action="shpaypackagesave_cancel.php">
<table id="popup" border="1" cellpadding="5" cellspacing="5" style="margin-top:10px; width:100%;">
<thead>
<th class="info"><center>ชื่อวัสดุ</center></th>
<th class="info"><center>จำนวน</center></th>
<th class="info"><center>เหตุผลที่ไม่อนุมัติ</center></th>
</thead>
<tbody>
<?
foreach( $_POST['checksave'] as $id)
{
if($id != "" )
{
$_SESSION["id"] = $id;
$_SESSION["Req_id"] = $_POST["Req_id"];
$_SESSION["Eq_id"] = $_POST["txt_id".$id];
$_SESSION["Eq_name"] = $_POST["txt_name".$id];
$_SESSION["Eq_total"] = $_POST["txt_total".$id];
$_SESSION["num_req"] = $_POST["txt_numreq".$id];
?>
<input type="hidden" name="id" id="id" value="<?=$_SESSION["id"];?>">
<input type="hidden" name="Eq_id" id="Eq_id" value="<?=$_SESSION["Eq_id"];?>">
<input type="hidden" name="Eq_total" id="Eq_total" value="<?=$_SESSION["Eq_total"];?>">
<input type="hidden" name="num_req" id="num_req" value="<?=$_SESSION["num_req"];?>">
<tr>
<td class="info"><?=$_SESSION["Eq_name"];?></td>
<td class="info"><center><?=$_SESSION["num_req"];?></center></td>
<td class="info"><center><input type="text" name="txt_note<?php echo $i;?>" id="txt_note<?php echo $i;?>" value="" /></center></td>
</tr>
<?
}
}
?>
</tbody>
</table>
<script language="javascript">
function winclose()
{
window.close()
window.opener.location.reload();
}
</script>
<br>
<center>
<input type="submit" name="Submit" id="Submit" value="ยืนยัน" >
<input type="button" name="close" value="ยกเลิก" onclick="javascript:winclose();" />
</center>
<input type="hidden" name="hdnLine" value="<?php echo $i;?>"
</form>
</body>
</html>
Code (formupdate.php)
<? session_start();
include("DBcon.php");
$statusid = 13;
$id = $_POST["id"];
$Eq_id = $_POST["Eq_id"];
$Eq_total = $_POST["Eq_total"];
$num_req = $_POST["num_req"];
echo $id." ".$Eq_id." ".$Eq_total." ".$num_req;
/*if($id != "")
{
$strSQL ="UPDATE tb_rqdetail SET status_id = '".$statusid."', note_disapp = '".$note."' WHERE Rqdetail_id = '".$id."'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL ="UPDATE tb_equipment SET ";
$strSQL .="Eq_total = '$Eq_total' + '$num_req' ";
$strSQL .="WHERE Eq_id = '".$Eq_id."' ";
$objQuery = mysql_query($strSQL) or die ("Error Query[".$strSQL."]");
}*/
?>
<meta charset="utf-8">
ภาพประกอบครับ
Tag : PHP, MySQL, JavaScript
|
ประวัติการแก้ไข 2015-10-21 01:55:55 2015-10-21 01:59:12
|
|
|
|
|
Date :
2015-10-21 01:40:21 |
By :
nadthasin |
View :
1512 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัว popup เก็บค่า code ของ ตัวที่จะกรอกเหตุผลด้วย
พอกดยืนยันก็ ทำในหน้า popup ให้เสร็จเลย ( update db ที่หน้านี้ไปเลย )
|
|
|
|
|
Date :
2015-10-21 17:08:56 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมพยายาม update ในหน้านั้นเลยแล้วนะครับ แต่มัน update ได้แค่ record เดียว อ่ะครับ ถ้ามี 2 รายการมันเลือก update รายการล่าสุดเท่านั้นอ่ะครับ มีวิธีแก้ยังไงหรอครับ
นี่คือโค้ดหน้า popup ที่จะให้ update เลยครับ
Code (PHP)
<? session_start();
include("datetime.php");
include("Timeth.php");
include("DBcon.php");
?>
<form name="frmMain" method="post" action="shpayreason.php">
<input type="hidden" name="hdnCmd" value="">
<table id="popup" border="1" cellpadding="5" cellspacing="5" style="margin-top:10px; width:100%;">
<thead>
<th class="info"><center>ชื่อวัสดุ</center></th>
<th class="info"><center>จำนวน</center></th>
<th class="info"><center>เหตุผลที่ไม่อนุมัติ</center></th>
</thead>
<tbody>
<?
foreach( $_POST['checksave'] as $id)
{
if($id != "" )
{
$Req_id = $_POST["Req_id"];
$Eq_id = $_POST["txt_id".$id];
$Eq_name = $_POST["txt_name".$id];
$Eq_total = $_POST["txt_total".$id];
$num_req = $_POST["txt_numreq".$id];
?>
<input type="hidden" name="id<?php echo $id;?>" id="id" value="<?=$id;?>">
<input type="hidden" name="Eq_id<?php echo $id;?>" id="Eq_id" value="<?=$Eq_id;?>">
<input type="hidden" name="Eq_total<?php echo $id;?>" id="Eq_total" value="<?=$Eq_total;?>">
<input type="hidden" name="num_req<?php echo $id;?>" id="num_req" value="<?=$num_req;?>">
<tr>
<td class="info"><?=$Eq_name;?></td>
<td class="info"><center><?=$num_req;?></center></td>
<td class="info"><center><input type="text" name="txt_note<?php echo $id.$i;?>" id="txt_note" value="" /></center></td>
</tr>
<?
}
}
//*** Update Condition ***//
for($i=0;$i<=$id;$i++)
{
if($id[$i] != "")
{
$statusid = 13;
$note = $_POST["txt_note".$id];
if($_POST["Submit"] == "ยืนยัน")
{
$strSQL ="UPDATE tb_rqdetail SET status_id = '".$statusid."', note_disapp = '".$note."' WHERE Rqdetail_id = '".$id."'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL ="UPDATE tb_equipment SET ";
$strSQL .="Eq_total = '$Eq_total' + '$num_req' ";
$strSQL .="WHERE Eq_id = '".$Eq_id."' ";
$objQuery = mysql_query($strSQL) or die ("Error Query[".$strSQL."]");
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}else{
echo $strSQL;
}
//header("location:$_SERVER[PHP_SELF]");
//exit();
}
}
}
?>
</tbody>
</table>
<script language="javascript">
function winclose()
{
window.close()
window.opener.location.reload();
}
</script>
<br>
<center>
<input name="Submit" type="submit" id="Submit" value="ยืนยัน">
<input type="button" name="close" value="ยกเลิก" onclick="javascript:winclose();" />
</center>
<input type="hidden" name="hdnLine" value="<?php echo $i;?>">
</form>
</body>
</html>
|
|
|
|
|
Date :
2015-10-21 17:32:17 |
By :
nadthasin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้อง get ค่า มาเป็นแบบ array นะคับ
ผม ไม่ค่อยแน่ใจ เท่าไรแฮะ เพราะ ปัจจุบัน ใช้พวก jquery submit บ่อยกว่าใช้ form submit
น่าจะต้องกำหนดที่ name="id[]" เป็น array แบบนี้อะคับ - -
จะได้เป็น ชุดๆ แล้วไป loop update ครับ
|
ประวัติการแก้ไข 2015-10-21 17:37:50
|
|
|
|
Date :
2015-10-21 17:36:42 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่ค่อยเข้าใจเท่าไหร่อ่ะครับ พอจะเขียนให้ดูเป็นตัวอย่างได้ไหมครับ ช่วยหน่อยนะครับ
|
|
|
|
|
Date :
2015-10-21 19:39:37 |
By :
nadthasin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำเป็นตัวอย่าง การใช้ตัวแปร array ลองศึกษาดูครับ
เอาโค๊ดเจ้าของกระทู้มาปรับปรุงเป็นตัวอย่าง
แต่บางอย่างไม่รู้วัตถุประสงค์ ก็แก้เอาเองนะครับ
Code (PHP)
<?php
session_start();
include("datetime.php");
include("Timeth.php");
include("DBcon.php");
if( isset($_POST['confirmupdate'])){
//*** Update Condition ***//
foreach($_POST['id'] as $i=>$id){
$str = "ตัวอย่าง update table set Eq_id = '$_POST[$i][Eq_id]', Eq_total = '$_POST[$i][Eq_total]'
where id=$id";
}
}
?>
<!-- ///////// script function ถ้าเป็นไปได้พยายามเอาไปไว้ใน header ///////////////// -->
<script language="javascript">
function winclose(){
window.close()
window.opener.location.reload();
}
</script>
<!-- ////////////////////////// -->
<form name="frmMain" method="post" action=""><!-- action ไม่ต้องใส่ default ตัวมันเอง -->
<input type="hidden" name="hdnCmd" value="">
<table id="popup" border="1" cellpadding="5" cellspacing="5" style="margin-top:10px; width:100%;">
<thead>
<th class="info"><center>ชื่อวัสดุ</center></th>
<th class="info"><center>จำนวน</center></th>
<th class="info"><center>เหตุผลที่ไม่อนุมัติ</center></th>
</thead>
<tbody>
<?php
foreach( $_POST['checksave'] as $key=>$id){
if($id != "" ){
$Req_id = $_POST["Req_id"];
$Eq_id = $_POST["txt_id".$id];
$Eq_name = $_POST["txt_name".$id];
$Eq_total = $_POST["txt_total".$id];
$num_req = $_POST["txt_numreq".$id];
?>
<input type="hidden" name="id[<?php echo $id;?>]" value="<?=$id;?>">
<input type="hidden" name="Eq_id[<?php echo $id;?>]" value="<?=$Eq_id;?>">
<input type="hidden" name="Eq_total[<?php echo $id;?>]" value="<?=$Eq_total;?>">
<input type="hidden" name="num_req[<?php echo $id;?>]" value="<?=$num_req;?>">
<tr>
<td class="info"><?=$Eq_name;?></td>
<td class="info"><center><?=$num_req;?></center></td>
<td class="info"><center><input type="text" name="txt_note[<?php echo $id.$i;?>]" value="" /></center></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<br>
<center>
<input name="confirmupdate" type="submit" value="ยืนยัน">
<input type="button" name="close" value="ยกเลิก" onclick="javascript:winclose();" />
</center>
<input type="hidden" name="hdnLine" value="<?php echo $i;?>">
</form>
</body>
</html>
ตัวแปร array ใส่ [] ครอบ element เอาไว้ name="id[<?php echo $id;?>]"
และ id="..." ถ้าไม่ได้ใช้ ่javascript เรียกใช้ ก็ไม่ต้องไปใส่ครับ
|
ประวัติการแก้ไข 2015-10-22 08:26:30
|
|
|
|
Date :
2015-10-22 08:23:24 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้แล้วครับ ขอบคุณ คุณ NewbiePHP ช่วยได้เยอะเลยครับ
วางโค้ดทิ้งไว้ละกันครับ
Code (PHP)
<? session_start();
include("datetime.php");
include("Timeth.php");
include("DBcon.php");
if(isset($_POST['confirmupdate'])){
//*** Update Condition ***//
foreach($_POST['id'] as $i=>$id){
$statusid = 13;
$note = $_POST["txt_note"][$i];
$Eq_id1 = $_POST["Eq_id"][$i];
$Eq_total1 = $_POST["Eq_total"][$i];
$num_req1 = $_POST["num_req"][$i];
$Req_id1 = $_POST["Req_id"][$i];
$strSQL1 ="UPDATE tb_rqdetail SET status_id = '".$statusid."', note_disapp = '".$note."' WHERE Rqdetail_id = '$id'";
$objQuery1 = mysql_query($strSQL1) or die ("Error Query [".$strSQL1."]");
$strSQL ="UPDATE tb_equipment SET ";
$strSQL .="Eq_total = '$Eq_total1' + '$num_req1' ";
$strSQL .="WHERE Eq_id = '".$Eq_id1."' ";
$objQuery = mysql_query($strSQL) or die ("Error Query[".$strSQL."]");
}
echo "<br><br><center><font size=\"+6\"><font color=\"#07AAF8\">บันทึกข้อมูลเรียบร้อย</font></font></center>";
exit();
?>
<form name="frmMain" method="post" action="">
<input type="hidden" name="hdnCmd" value="">
<table id="popup" border="1" cellpadding="5" cellspacing="5" style="margin-top:10px; width:100%;">
<thead>
<th class="info"><center>ชื่อวัสดุ</center></th>
<th class="info"><center>จำนวน</center></th>
<th class="info"><center>เหตุผลที่ไม่อนุมัติ</center></th>
</thead>
<tbody>
<?php
foreach( $_POST['checksave'] as $key=>$id)
{
if($id != "" )
{
$Req_id = $_POST["Req_id".$id];
$Eq_id = $_POST["txt_id".$id];
$Eq_name = $_POST["txt_name".$id];
$Eq_total = $_POST["txt_total".$id];
$num_req = $_POST["txt_numreq".$id];
?>
<input type="text" name="id[<?php echo $id.$i;?>]" value="<?=$id;?>">
<input type="text" name="Req_id[<?php echo $id.$i;?>]" value="<?=$Req_id;?>">
<input type="text" name="Eq_id[<?php echo $id.$i;?>]" value="<?=$Eq_id;?>">
<input type="text" name="Eq_total[<?php echo $id.$i;?>]" value="<?=$Eq_total;?>">
<input type="text" name="num_req[<?php echo $id.$i;?>]" value="<?=$num_req;?>">
<tr>
<td class="info"><?=$Eq_name;?></td>
<td class="info"><center><?=$num_req;?></center></td>
<td class="info"><center><input type="text" name="txt_note[<?php echo $id.$i;?>]" value="" /></center></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<br>
<center>
<input name="confirmupdate" type="submit" value="ยืนยัน">
<input type="button" name="close" value="ยกเลิก" onclick="javascript:winclose();" />
</center>
<input type="hidden" name="hdnLine" value="<?php echo $i;?>">
</form>
</body>
</html>
|
|
|
|
|
Date :
2015-10-23 02:14:11 |
By :
nadthasin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|