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

Registered : 107,219

HOME > PHP > PHP Forum > php กับ ajax insert database แบบหลายๆค่า มันมาแต่ค่าสุดท้ายค่าเดียวค่ะ





 

php กับ ajax insert database แบบหลายๆค่า มันมาแต่ค่าสุดท้ายค่าเดียวค่ะ

 



Topic : 133027



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



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



รบกวนดูให้หน่อยค่ะ มัน insert แต่ค่าสุดท้ายค่าเดียว ติดมาหลายวันแล้วไม่ได้เลยค่ะ

โค้ดจาวาที่ใช้ค่ะ เป็น ajax aucompleas

Code (Java)
<script type="text/javascript">
        $(document).ready(function(){

            $(document).on('keydown', '.pdname', function() {
                
                var id = this.id;
                var splitid = id.split('_');
                var index = splitid[1];

                $( '#'+id ).autocomplete({
                    source: function( request, response ) {
                        $.ajax({
                            url: "getproducts.php",
                            type: 'post',
                            dataType: "json",
                            data: {
                                search: request.term,request:1
                            },
                            success: function( data ) {
                                response( data );
                            }
                        });
                    },
                    select: function (event, ui) {
                        $(this).val(ui.item.label); // display the selected text
                        var userid = ui.item.value; // selected id to input

                        // AJAX
                        $.ajax({
                            url: 'getproducts.php',
                            type: 'post',
                            data: {userid:userid,request:2},
                            dataType: 'json',
                            success:function(response){
                                
                                var len = response.length;

                                if(len > 0){
                                    var id = response[0]['id'];
									var pdid = response[0]['pdid'];                                  
																
                                    document.getElementById('pdid_'+index).value = pdid;
                                    
                                    
                                }
                                
                            }
                        });

                        return false;
                    }
                });
            });
            
            // Add more
            $('#addmore').click(function(){

                // Get last id 
                var lastname_id = $('.tr_input input[type=text]:nth-child(1)').last().attr('id');
                var split_id = lastname_id.split('_');

                // New index
                var index = Number(split_id[1]) + 1;

                // Create row with input elements
                var html = "<tr class='tr_input'><td><input type='text' name='pdname' class='pdname form-control' id='pdname_"+index+"' placeholder='Enter Products'><input type='hidden' name='pdid' class='pdid' id='pdid_"+index+"' ></td><td><input type='text' name='quantity' class='quantity text ui-widget-content ui-corner-all' id='qtd_"+index+"' ></td><td><input type='text' name='price' class='price text ui-widget-content ui-corner-all' id='price_"+index+"' ></td><td><input type='text' name='subtotal' class='subtotal text ui-widget-content ui-corner-all' id='subtotal_"+index+"' ></td><td><button type='button' class='removebutton btn btn-outline btn-default' id='removebutton_"+index+"'title='Remove this row'>X</button></td></tr>";

                // Append data
                $('tbody').append(html);
		$('#hdnCount').val(index);
						
                
            });
        });

    </script>



อันนี้ html

Code
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data" > <table class="table"> <thead> <tr> <th width="50%">รายการสินค้า</th> <th width="12%">จำนวน</th> <th width="12%">ราคา</th> <th width="12%">จำนวนเงิน(บาท)</th> <th width="14%">&nbsp;</th> </tr> </thead> <tbody> <tr class='tr_input'> <td><input type='text' class='pdname form-control' name='pdname' id='pdname_1' placeholder='Enter Products'><input type='hidden' name='pdid' id='pdid_1' class='pdid' /></td> <td><input type='text' name='qtd' id='qtd_1' class='quantity text ui-widget-content ui-corner-all'></td> <td><input type='text' name='price' id='price_1' class='price text ui-widget-content ui-corner-all'></td> <td><input type='text' name='subtotal' id='subtotal_1' class='subtotal text ui-widget-content ui-corner-all' ></td> <td><input type='button' value='เพิ่มรายการสินค้า' id='addmore' class="btn btn-w-m btn-success"></td> </tr> </tbody> </table> </form>


php ค่ะ มันมาค่าสุดท้ายค่าเดียวค่ะ

Code (PHP)
for($i=0;$i<count($_POST["hdnCount"]);$i++)
{
$pdid  = $_POST["pdid"][$i];
$pdname  = $_POST["pdname"][$i];
$quantity = $_POST["quantity"][$i];
$price  = $_POST["price"][$i];

			
	if($_POST["pdid"][$i] != '' && $_POST["pdname"][$i] != '' && $_POST["quantity"][$i] != '' && $_POST["subtotal"][$i] != '')
	{

	    $sql ="insert into buy_product(id_product , name_product, qty_product, price) values ('$pdid', '$pdname', '$quantity', '$price')";
		$re = mysql_query($dbname,$sql) or die (mysql_error());
		{

		}
	}
}





Tag : PHP, MySQL, JavaScript, Ajax, jQuery, Appserv







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-01-30 21:20:01 By : aobjung View : 178 Reply : 8
 

 

No. 1



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



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


ตรง name ของ input ลองใส่ [] ต่อท้ายดูครับ
eg. qtd => qtd[] ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-30 22:30:36 By : Jatmentz
 


 

No. 2



โพสกระทู้ ( 5,093 )
บทความ ( 4 )

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

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


ลอง เทส print_r($_POST) ว่ามีค่าจริงไหม
ดูลำดับของชั้นว่ากำหนด id ให้แต่ละอันถูกตามที่เราต้องการไหม

ถ้ามองจาก code รับค่าวนลูป น่าจะต้องส่งค่าแบบ array ตามที่ คห.1 บอก...

แต่ถ้าจะ fix id ก็ต้องรับแบบ fix id
$pdid = $_POST['pdid_'.$i]
ถ้า fix ก็ต่อ string ให้ถูก
แล้วเวลา count มันจะเริ่มจาก 0 ถ้าเป็น fix id มันจะเป็น pdid_0 pdid_1 pdid_2
ถ้าเริ่มจาก 0 ก็ไม่มีปัญหา แต่ถ้าเริ่มจาก 1 ก็ต้อง +1 ก่อนเอาค่ามาวนลูป

ถ้าจะ array ก็ดูลำดับให้ถูก...
น่าจะทางใดทางนึง เอาที่เราถนัดครับ


ประวัติการแก้ไข
2019-01-31 08:40:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-31 08:37:36 By : apisitp
 

 

No. 3



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



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

มันนับได้ 2 row แต่ ข้อมูลมาแค่ บรรทัดแรกบรรทัดเดียวค่ะ

Code (PHP)

มันนับได้ 2 row แต่ ข้อมูลมาแต่บรรทัดแรกค่ะ แต่บรรทัดที่ใช้ ajax เพิ่มมันไม่มาค่ะ
if(isset($_POST['btnSubmit'])){
	

	
	
for($i=0;$i<count($_POST["hdnCount"]);$i++){
        echo $_POST["hdnCount"]."<br>";
        echo $_POST['pdid'][$i]."<br>";
        echo $_POST['pdname'][$i]."<br>";
        echo $_POST['quantity'][$i]."<br>";
        echo $_POST['price'][$i]."<br>";	
        echo "<hr>";
}	
}



Code
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data" > <div class="col-md-10"> <table class="table"> <thead> <tr> <th width="50%">รายการสินค้า</th> <th width="12%">จำนวน</th> <th width="12%">ราคา</th> <th width="12%">จำนวนเงิน(บาท)</th> <th width="14%">&nbsp;</th> </tr> </thead> <tbody> <tr class='tr_input'> <td><input type='text' class='pdname form-control' name='pdname[]' id='pdname_1' placeholder='Enter Products'><input type='hidden' name='pdid[]' id='pdid_1' class='pdid' /></td> <td><input type='text' name='qtd[]' id='qtd_1' class='quantity text ui-widget-content ui-corner-all'></td> <td><input type='text' name='price[]' id='price_1' class='price text ui-widget-content ui-corner-all'></td> <td><input type='text' name='subtotal[]' id='subtotal_1' class='subtotal text ui-widget-content ui-corner-all' ></td> <td><input type='button' value='เพิ่มรายการสินค้า' id='addmore' class="btn btn-w-m btn-success"></td> </tr> </tbody> </table> </div> <input type="hidden" id="hdnCount" name="hdnCount"> <button class="btn btn-primary" type="submit" name="btnSubmit" id="btnSubmit">Submit</button> </form>


Code (Java)
<script type="text/javascript">
        $(document).ready(function(){

            $(document).on('keydown', '.pdname', function() {
                
                var id = this.id;
                var splitid = id.split('_');
                var index = splitid[1];

                $( '#'+id ).autocomplete({
                    source: function( request, response ) {
                        $.ajax({
                            url: "getproducts.php",
                            type: 'post',
                            dataType: "json",
                            data: {
                                search: request.term,request:1
                            },
                            success: function( data ) {
                                response( data );
                            }
                        });
                    },
                    select: function (event, ui) {
                        $(this).val(ui.item.label); // display the selected text
                        var userid = ui.item.value; // selected id to input

                        // AJAX
                        $.ajax({
                            url: 'getproducts.php',
                            type: 'post',
                            data: {userid:userid,request:2},
                            dataType: 'json',
                            success:function(response){
                                
                                var len = response.length;

                                if(len > 0){
                                    var id = response[0]['id'];
									var pdid = response[0]['pdid'];                                  
																
                                    document.getElementById('pdid_'+index).value = pdid;
                                    
                                    
                                }
                                
                            }
                        });

                        return false;
                    }
                });
            });
            
            // Add more
            $('#addmore').click(function(){

                // Get last id 
                var lastname_id = $('.tr_input input[type=text]:nth-child(1)').last().attr('id');
                var split_id = lastname_id.split('_');

                // New index
                var index = Number(split_id[1]) + 1;

                // Create row with input elements
                var html = "<tr class='tr_input'><td><input type='text' name='pdname[]' class='pdname form-control' id='pdname_"+index+"' placeholder='Enter Products'><input type='hidden' name='pdid[]' class='pdid' id='pdid_"+index+"' ></td><td><input type='text' name='quantity[]' class='quantity text ui-widget-content ui-corner-all' id='quantity_"+index+"' ></td><td><input type='text' name='price[]' class='price text ui-widget-content ui-corner-all' id='price_"+index+"' ></td><td><input type='text' name='subtotal[]' class='subtotal text ui-widget-content ui-corner-all' id='subtotal_"+index+"' ></td><td><button type='button' class='removebutton btn btn-outline btn-default' id='removebutton_"+index+"'title='Remove this row'>X</button></td></tr>";

                // Append data
                $('tbody').append(html);
				
				$('#hdnCount').val(index);
						
                
            });
        });

    </script>	



ประวัติการแก้ไข
2019-01-31 14:09:47
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-31 14:07:13 By : aobjung
 


 

No. 4



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



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

สรุปคือ ต้องการให้ Insert หลายๆ Row และ ค่าที่ได้คือได้ค่าสุดท้าย ของค่าที่ส่งมาใช่ไหม
Multiple Insert


ประวัติการแก้ไข
2019-01-31 14:25:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-31 14:23:55 By : Hararock
 


 

No. 5



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



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


ข้อแรก
คุณรับค่าด้วย $_POST['quantity'][$i] แต่ บรรทัดแรกใช้ name = qtd // ไม่ตรงกัน
ข้อสอง
คุณใช้ count($_POST["hdnCount"]) ซึ่งค่าที่ count มาจะเท่ากับ 1 // คุณต้องการ value ไม่จำเป็นต้อง count

บางปัญหา ก็เส้นผมบังภูเขาครับ แต่ทุกปัญหาจะสอนให้คุณระวัง
สู้ๆครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-31 14:35:56 By : Jatmentz
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 4 เขียนโดย : Hararock เมื่อวันที่ 2019-01-31 14:23:55
รายละเอียดของการตอบ ::
ใช่ค่ะ แต่มันมาแค่ค่าของบรรทัดแรกค่าเดียวค่ะ ตามรูปค่ะ ลองส่งค่ะไป 2 row แต่มันมาแค่ row 1 ค่ะ


มันนับได้ 2 row แต่ ข้อมูลมาแค่ บรรทัดเดียวค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-31 18:33:20 By : aobjung
 


 

No. 7



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



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

ได้แล้วค่ะ เขียนแบบนี้ ค่าออกมาหมดที่ใส่ไปค่ะ

Code (PHP)
if(isset($_POST['btnSubmit'])){
	

	for ($i = 0; $i< (int)$_POST["hdnCount"]; $i++){

        echo $_POST["hdnCount"]."<br>";
        echo $_POST['pdid'][$i]."<br>";
        echo $_POST['pdname'][$i]."<br>";
        echo $_POST['quantity'][$i]."<br>";
        echo $_POST['price'][$i]."<br>";
        echo "<hr>";			


	}

	
	
}




แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-31 20:43:57 By : aobjung
 


 

No. 8



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



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : aobjung เมื่อวันที่ 2019-01-31 18:33:20
รายละเอียดของการตอบ ::
https://www.thaicreate.com/community/php-multiple-insert-by-checkbox.html

ดูตัวอย่างที่ผมเขียนไว้ เป็นแนวทาง ปรับเปลี่ยนเอาครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-01 10:47:22 By : Hararock
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : php กับ ajax insert database แบบหลายๆค่า มันมาแต่ค่าสุดท้ายค่าเดียวค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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