ขอสอบถามการ update ซึ่งเอาแต่ข้อมูล row สุดท้ายมา update ค่ะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ขอสอบถามการ update ซึ่งเอาแต่ข้อมูล row สุดท้ายมา update ค่ะ

ขอสอบถามการ update ซึ่งเอาแต่ข้อมูล row สุดท้ายมา update ค่ะ
ขอสอบถามการ Update Status ค่ะ  ต้องการ Update ของแต่ละRow ค่ะ โดยที่จะเลือก dropdownlist Status จากหน้ารายการแล้วให้กด Save ขวามือ ดังรูป
ซึ่งตอนนี้สามารถบันทึกได้แค่ row สุดท้าย ไม่ว่าจะกด Save บรรทัดไหนก็เอา row สุดท้ายมาUpdate
รบกวนดูหน่อยค่ะว่าต้องแก้ code อย่างไร ขอบคุณค่ะ



<?php include 'Connection.php';   ?>
<html>
  <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        
        <?php      
              //*** Update Condition ***//
            if($_POST["hdnCmd"] == "Save"){
              $strSQL = "UPDATE PRICING_HD SET StatusQuotation = '".$_POST["status"]."' WHERE PricingHDID = '".$_POST["pricing_id"]."' AND PricingHDRevision = '".$_POST["pricing_revision"]."' ";
              $objQuery = sqlsrv_query($Conn,$strSQL) or die ("Error Update [".$strSQL."]");
        } ?>
  </head>
  <body>
        <form name="datalist" id="datalist" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>" >
        <input type="hidden" name="hdnCmd" value="">    
        <table class="display" id="datatable">
        <thead>
	    <tr>
                <th style="font-size: 14px; ">No.</th>
		<th style="font-size: 14px; ">ID</th>
                <th style="font-size: 14px; ">Status</th>
                <th style="font-size: 14px; ">Save</th>
                
	    </tr>
	</thead>
        <tbody>
                <?php    
                        $sql = "SELECT * FROM PRICING_HD ";
                        $query = sqlsrv_query($Conn,$sql) or die("error");
                        $i = 1;
                        while($row = sqlsrv_fetch_array($query)){ 
                            
                        ?> 
                        <tr class="odd">
                            <td align="center" width="30"><font size="2"><?php echo $i ; ?></font></td>
                            <td align="center" width="80"><font size="2"><?php echo $row["PricingHDID"];?></font>
                                <input type="hidden" name="pricing_id" id="pricing_id"  value="<?php echo $row["PricingHDID"];?>">
                                <input type="hidden" name="pricing_revision" id="pricing_revision"  value="<?php echo $row["PricingHDRevision"];?>">
                            </td>
                            <td align="center" width="80">
                                <select name="status" id="status" style="width:130px;height:25px;float:left;padding:0px 0px 0 0px; background-color:#F4F6F7; border:1px #90A9B7 solid; color:#000;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;" >
                                    <option value="Draft" <?PHP if($row['StatusQuotation'] == "Draft") { echo "selected='selected'"; } ?>>Draft</option>
                                    <option value="Approve" <?PHP if($row['StatusQuotation'] == "Approve") { echo "selected='selected'"; } ?>>Approve</option>
                                    <option value="Submit to Customer" <?PHP if($row['StatusQuotation'] == "Submit to Customer") { echo "selected='selected'"; } ?>>Submit to Customer</option>
                                    <option value="Final Version" <?PHP if($row['StatusQuotation'] == "Final Version") { echo "selected='selected'"; } ?>>Final Version</option>
                                </select>
                            </td>
                            <td align="center"><input type="image" name="submitStatus" src="images/save.png" alt="" title="Save Status" border="0" width="20" OnClick="datalist.hdnCmd.value='Save';datalist.submit();"/></button></td>
                            
                        </tr>
                <?php $i = $i+1; } ?>    
        </tbody>
        </table> 
     </form>
</body>
</html>


Chinjung 49.229.207.xxx 14-05-2017 13:45:58

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ใช้ ajax ในการส่งค่าแทนได้ ลองดูเนื้อหานี้เป็นแนวทาง

ทบทวนพื้นฐาน ajax ใน jquery การส่งค่าและแสดงข้อมูลเบื้องต้น 
แต่ถ้าจะใช้ฟอร์มเดียวคลุมทั้งหมด ให้กำหนดชื่อ element เป็น array เพราะว่าในลูป ของ element ที่วนซ้ำ
จะใช้ชื่อสุดท้าย หรือตัวสุดทัายในการส่งข้อมูล เพราะชื่่อ element จะซ้ำกันไม่ได้ ถ้าอยู่ในฟอร์มเดียวกัน

โค้ดปุ่มก็ผิดเพื้ยน เปิดเป็น input type แต่ปิด button ซึ่งผิดให้ใช้เป็น <input ..... />

ลองเปลี่ยน element ในลูป while() เป็น array ให้หมดทุกตัวตามนี้

<input type="hidden" name="pricing_id[<?php echo $row["PricingHDID"];?>]" id="pricing_id"  value="<?php echo $row["PricingHDID"];?>">


แนวทางประเมาณนี้

<?php include 'Connection.php';   ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php      
  //*** Update Condition ***//
if($_POST["hdnCmd"] == "Save"){
	$priceID=$_POST["h_pricing_id"];
  $strSQL = "
  UPDATE PRICING_HD SET StatusQuotation = '".$_POST["status"][$priceID]."' 
  WHERE PricingHDID = '".$priceID."' 
  AND PricingHDRevision = '".$_POST["pricing_revision"][$priceID]."' ";
  $objQuery = sqlsrv_query($Conn,$strSQL) or die ("Error Update [".$strSQL."]");
} 
?>
</head>
<body>
<form name="datalist" id="datalist" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>" >
  <input type="hidden" name="hdnCmd" value="">
  <input type="hidden" name="h_pricing_id" value="">
  <table class="display" id="datatable">
    <thead>
      <tr>
        <th style="font-size: 14px; ">No.</th>
        <th style="font-size: 14px; ">ID</th>
        <th style="font-size: 14px; ">Status</th>
        <th style="font-size: 14px; ">Save</th>
      </tr>
    </thead>
    <tbody>
      <?php    
                        $sql = "SELECT * FROM PRICING_HD ";
                        $query = sqlsrv_query($Conn,$sql) or die("error");
                        $i = 1;
                        while($row = sqlsrv_fetch_array($query)){            
                        ?>
      <tr class="odd">
        <td align="center" width="30"><font size="2"><?php echo $i ; ?></font></td>
        <td align="center" width="80"><font size="2"><?php echo $row["PricingHDID"];?></font>
          <input type="hidden" name="pricing_id[<?php echo $row["PricingHDID"];?>]" id="pricing_id"  value="<?php echo $row["PricingHDID"];?>">
          <input type="hidden" name="pricing_revision[<?php echo $row["PricingHDID"];?>]" id="pricing_revision"  value="<?php echo $row["PricingHDRevision"];?>"></td>
        <td align="center" width="80">
        <select name="status[<?php echo $row["PricingHDID"];?>]" id="status" style="width:130px;height:25px;float:left;padding:0px 0px 0 0px; background-color:#F4F6F7; border:1px #90A9B7 solid; color:#000;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;" >
            <option value="Draft" <?PHP if($row['StatusQuotation'] == "Draft") { echo "selected='selected'"; } ?>>Draft</option>
            <option value="Approve" <?PHP if($row['StatusQuotation'] == "Approve") { echo "selected='selected'"; } ?>>Approve</option>
            <option value="Submit to Customer" <?PHP if($row['StatusQuotation'] == "Submit to Customer") { echo "selected='selected'"; } ?>>Submit to Customer</option>
            <option value="Final Version" <?PHP if($row['StatusQuotation'] == "Final Version") { echo "selected='selected'"; } ?>>Final Version</option>
          </select></td>
        <td align="center">
        <input type="image" name="submitStatus[<?php echo $row["PricingHDID"];?>]" src="images/save.png" 
        alt="" title="Save Status" border="0" width="20" 
        OnClick="datalist.hdnCmd.value='Save';datalist.h_pricing_id.value='<?php echo $row["PricingHDID"];?>';datalist.submit();"/>
        </td>
      </tr>
      <?php $i = $i+1; } ?>
    </tbody>
  </table>
</form>
</body>
</html>




ninenik 1.47.168.xxx 14-05-2017
 ความคิดเห็นที่ 2
ทำได้แล้วค่ะ ขอบคุณค่ะ smiley


chinjung 1.46.45.xxx 14-05-2017 21:55






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ