Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ถามเรื่องการเพิ่มแถว กับการคำนวนราคาสินค้าจาก textbox ที่ clone ขึ้นมาครับผม



 

ถามเรื่องการเพิ่มแถว กับการคำนวนราคาสินค้าจาก textbox ที่ clone ขึ้นมาครับผม

 



Topic : 102107

Guest




1

2

ดังรูปด้านบนนะครับเมื่อกดปุ่มบวกแล้วผมจะเพิ่มแถวในช่องให้กรอกสินค้าแต่เมื่อกดแล้วมันไปอยู่ต่อกจากช่องรวมครับ
ไม่ทราบว่าต้องแก้โค้ดตรงไหนครับผม
Code (JavaScript)
<script type="text/javascript">
$(document).ready(function(){
	$("#addRow").click(function(){
		$("#tblamount").append($("#tramount").clone());
	});
	$("#removeRow").click(function(){
		if($("#tblamount tr").size()>2){
			$("#tblamount tr:last").remove();
		}else{
			alert("ต้องมีรายการข้อมูลอย่างน้อย 1 รายการ");
		}
	});	
			
});
</script>


เรื่องที่สองครับผม คือผมอยากให้ผมคำนวน ราคาสินค้าทั้งแนวต้องแนวนอนนะครับ ผมลองให้ในกระทู้เำก่าๆ นะครับ

มันคำนวนได่เพราะ name หรือ id มันไม่เหมือนกัน แต่ของผมนี้ แถวมันได้มาจากการ clone มา name หรือ id เลยเหมือนกัน

ไม่ทราบว่าพอจะมีวิธีไหมครับที่ทำให้มันคำนวนได้



Tag : PHP, MySQL, HTML/CSS, JavaScript, VBScript, jQuery







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-10-28 09:43:59 By : นัท ฝั่งธน View : 1737 Reply : 16
 

 

No. 1



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ต้องเอา Code HTML มาดูครับ
อ้อ แล้วเรื่องพวกนี้มันมีให้ดูหมดแล้วนี่ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 10:25:27 By : itpcc
 


 

No. 2

Guest


Code (PHP)
<table border="0">
  <tr>
    <td><table border="0" id="tblproduct">
      <tr>
        <td colspan="2" align="right" ><button id="addRow" type="button">+</button>
          &nbsp;
          <button id="removeRow" type="button">-</button></td>
      </tr>
      <tr id="trproduct">
        <td><label for="sum">กรุณาเลือกสินค้า</label></td>
        <td><select name="product" id="product">
          <?php $pro="select * from tblproduct";
			$qpro=mysql_query($pro);
			while($rs=mysql_fetch_array($qpro)){
			$proid=$rs['pid'];
			$name=$rs['pname'];
			$cost=$rs['cost'];
			echo "<option value= '$name'> $name </option>";} ?>
        </select></td>
      </tr>
    </table></td>
    <td><table id="tblamount">
      <tr>
        <td>ชื่อสินค้า</td>
        <td>จำนวน</td>
        <td>ราคา</td>
      </tr>
      <tr id="tramount">
        <td><input type="text" name="proname" id="proname" /></td>
        <td><input type="text" name="amount" id="amount" /></td>
        <td><input type="text" name="cost" id="cost" /></td>
      </tr>
      <tr>
        <td colspan="2" align="right"><label for="proname">รวมราคา</label></td>
        <td><label for="amount"></label>
          <input type="text" name="sum" id="textfield3" /></td>
      </tr>
    </table></td>
  </tr>
</table>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 11:43:27 By : นัท ฝั่งธน
 

 

No. 3

Guest


มีหรอครับผม เป็นแบบ ที่เป็น Textbox ที่ clone มาหรอครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 11:44:31 By : นัท ฝั่งธน
 


 

No. 4



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ใช้แบบ อาเรย์คับ []

ตัวอย่างผมได้เขียนไปที่
https://www.thaicreate.com/php/forum/100497.html#00359186

ลองอ่านดูคับ คิดว่าอาจเป็นประโยชน์

ส่วน แนวตั้ง ที่ถามมาก็ลอง
$(':text[name^=cost]') ดูคับ ไม่ยาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 12:12:06 By : pjgunner.com
 


 

No. 5



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

อ้าวตอบผิดคำถาม

คับ append คือต่อท้ายสุด ถ้าไม่อยากต่อท้ายสุด ก็ใช้ลักษณะ sibling

ใช้ insertBefore('tr:last') ก็ได้คับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 12:22:28 By : pjgunner.com
 


 

No. 6

Guest


Code (PHP)
$("#tblamount").siblings().insertBefore($("#tramount").clone());


แบบนี้หรือเปล่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 13:33:48 By : นัท ฝั่งธน
 


 

No. 7

Guest


ตอบความคิดเห็นที่ : 6 เขียนโดย : นัท ฝั่งธน เมื่อวันที่ 2013-10-28 13:33:48
รายละเอียดของการตอบ ::
หรือว่าแบบนี้
$("#tblamount").siblings().insertBefore('tr:last').clone($("#tramount"));

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 13:35:41 By : นัท ฝั่งธน
 


 

No. 8

Guest


รบกวนด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 21:48:44 By : นัด ฝั่งธน
 


 

No. 9

Guest


ตอบความคิดเห็นที่ : 8 เขียนโดย : นัด ฝั่งธน เมื่อวันที่ 2013-10-28 21:48:44
รายละเอียดของการตอบ ::


สมมุติว่าผมไม่ใช้ทั้ง Jquery หรือ JavaScript หรือ etc... แต่ผมอยากจะเพิ่ม/ลบ/แทรก/etc พอเป็นไปได้ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-28 22:02:23 By : love9713
 


 

No. 10



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ป่าวคับ ไอ้ append prepend มันเป็นลักษณะ child ที่ว่าลักษณะ sibling คืออยู่ในระดับเดียวกัน

ลองไปอ่าน before() กะ insertBefore() ของ jquery ดูคับ จะเข้าใจเอง เพราะคุณต้องการใส่ tr ซึ่งเป็นลักษณะ sibling ก่อน tr สุดท้าย

ลองดูผมอาจเขียนผิดนะ ไม่ค่อยมีเวลา แค่ยกตัวอย่าง
$('#tramount').clone(true).insertBefore('#tblamount>tbody>tr:last');
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-30 11:55:31 By : pjgunner.com
 


 

No. 11



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 9 เขียนโดย : love9713 เมื่อวันที่ 2013-10-28 22:02:23
รายละเอียดของการตอบ ::
ได้ครับ แต่คงเป็นอะไรที่โคตรเปลืองทรัพยากรเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-30 15:52:25 By : itpcc
 


 

No. 12

Guest


เอาของผมไปโมได้เปล่าครับ

Code
<table id="myTable" class="order-list">
<thead>
<tr>
<td>ชื่อ</td>
<td>ราคา</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" name="name" />
</td>
<td>
<input type="text" name="price1" />
</td>
<td><a class="deleteRow"></a>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="5" style="text-align: left;">
<input type="button" id="addrow" value="Add Row" />
</td>
</tr>
<tr>
<td colspan="">Total: <span id="grandtotal"></span>

</td>
</tr>
</tfoot>
</table>



jquery
Code (JavaScript)
$(document).ready(function () {
    var counter = 0;
    counter = $('#myTable tr').length - 2;
 
    $("#addrow").on("click", function () {
         
 
        var newRow = $("<tr>");
        var cols = "";
 
        cols += '<td><input type="text" name="name' + counter + '"/></td>';
        cols += '<td><input type="text" name="price' + counter + '"/></td>';
 
        cols += '<td><input type="button" id="ibtnDel"  value="Delete"></td>';
        newRow.append(cols);
         
        $("table.order-list").append(newRow);
        counter++;
        if (counter == 5) $('#addrow').attr('disabled', true).prop('value', "You've reached the limit");
    });
 
    $("table.order-list").on("change", 'input[name^="price"]', function (event) {
        calculateRow($(this).closest("tr"));
        calculateGrandTotal();
    });
     
     
 
    $("table.order-list").on("click", "#ibtnDel", function (event) {
        $(this).closest("tr").remove();
        calculateGrandTotal();
        counter --;
        if (counter < 5) $('#addrow').attr("disabled", false).prop('value', "Add Row");
    });
 
 
});
 
 
 
function calculateRow(row) {
    var price = +row.find('input[name^="price"]').val();
 
}
 
function calculateGrandTotal() {
    var grandTotal = 0;
    $("table.order-list").find('input[name^="price"]').each(function () {
        grandTotal += +$(this).val();
    });
    $("#grandtotal").text(grandTotal.toFixed(2));
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-30 16:00:41 By : phpbasic
 


 

No. 13

Guest


ตอบความคิดเห็นที่ : 11 เขียนโดย : itpcc เมื่อวันที่ 2013-10-30 15:52:25
รายละเอียดของการตอบ ::
ได้ครับ แต่คงเป็นอะไรที่โคตรเปลืองทรัพยากรเลย
ผมไม่รู้ว่า PHP มันเอา JavaScrip ยัดเข้าไปใน DLL หรือสร้าง DLL (Dynamic link library) ได้หรือไม่ แต่ถ้ามันทำได้ แจ่มแมวเลยครับ


ขอบคุณครับ


ตอบความคิดเห็นที่ : 12 เขียนโดย : phpbasic เมื่อวันที่ 2013-10-30 16:00:41
รายละเอียดของการตอบ ::


ชัดเจนดีครับ

ผมสดุดตรงบรรทัดที่ 29 $("table.order-list").on("change", 'input[name^="price"]', function (event) {
ของคุณถูกต้องแล้วครับ แต่ของผมใช้ .live() ซึ่ง Jquery >= 1.9.x มันไม่สนับสนุนฟังก์ชั่นนี้แล้ว
(ผมต้องแก้ไขงานของผมอีกพอสมควรครับ ถ้าผมอยากจะทันสมัยกับเขามั่ง)

ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-30 17:05:56 By : love9713
 


 

No. 14

Guest


ตอบความคิดเห็นที่ : 12 เขียนโดย : phpbasic เมื่อวันที่ 2013-10-30 16:00:41
รายละเอียดของการตอบ ::


ผมลืมบอกไปนิดหนึ่ง ถ้าเป็น ASP.NET บางครั้งเป็นกรณีฯไป ผมจะวางแค่ Tag <table></table>

Code
<table id="myTable" class="order-list"> </table>


และผมก็เขียนโค๊ดคุมเอา (ผมไม่ได้ใช้ Jquery/JavaScript) ประมาณนี้ครับ
Code (VB.NET)
For i As Integer = 0 To 10 'ตามที่ต้องการ
   myTable.Columns.Add(xxx)
   myTable.Rows.Add(xxx)
Next 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-30 17:15:35 By : love9713
 


 

No. 15

Guest


thead, tbody, tfoot ช่วยแก้ปัญหาของคุณได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-31 05:56:06 By : -*-
 


 

No. 16



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

http://jsfiddle.net/erickub/VzJtF/
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-31 09:55:22 By : itpcc
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเรื่องการเพิ่มแถว กับการคำนวนราคาสินค้าจาก textbox ที่ clone ขึ้นมาครับผม
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่