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 > ต้องการให้ พอกรอกข้อมูลเข้า <input> แล้วกด Enter เพื่อบันทึกเข้า MySQL จากนั้นก็ Loop <input> มาโชว์



 

ต้องการให้ พอกรอกข้อมูลเข้า <input> แล้วกด Enter เพื่อบันทึกเข้า MySQL จากนั้นก็ Loop <input> มาโชว์

 



Topic : 124754



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



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



จากหัวข้อ ผมได้เขียนให้มันเช็คว่า มีข้อมูลหรือไม่
ถ้าไม่ ก็ให้แสดง <input> แรก
ถ้ามี ก็ให้ แสดง Loop <input> ที่มีทั้งหมด พร้อมกับเพิ่มช่องสำหรับเพิ่มใหม่

Code (PHP)
<script>
$(document).ready(function(){
		$("#emsnew").focus();
});
</script>
<section class="section">
<form method="post">
	<table style="margin:0 auto;">
	<?php
	$sql = "select * from ems where active = 'No'";
	$query = mysql_query($sql);
	$numrows = mysql_num_rows($query);
	if (!$numrows)
	{
		?>
		<tr>
				<th>เลข EMS ชุดที่ 1 : </th>
				<th><input style="text-align:center;" type="text" name="emsnew" id="emsnew"/></th>
				<th></th>
		</tr>
		<?php
	}
	else
	{
		
		while($rs = mysql_fetch_assoc($query))
		{
			$id = $rs['emsid'];
			$ems = $rs['ems'];
			$new = $id+1;
			?>
			<tr>
				<th>เลข EMS ชุดที่ <span name="<?php echo $id ?>"><?php echo $id ?></span> : </th>
				<th><input style="text-align:center;" type="text" name="<?php echo $id ?>" id="<?php echo $id ?>" value="<?php echo $ems ?>"/></th>
				<th></th>
			</tr>
			<?php
		}
		?>
		<tr>
				<th>เลข EMS ชุดที่ <?php echo $new ?> : </th>
				<th><input style="text-align:center;" type="text" name="emsnew" id="emsnew"/></th>
				<th></th>
		</tr>
		<?php
	}
	?>
			
	</table>
</form>
<script>
$('#emsnew').keypress(function (e) {
			if (e.which == 13) 
			{
				this.form.action='activeems/activeems.php';
			}
			});
</script>
</section>


ปัญหาคือ พอผมเพิ่มข้อมูลครั้งแรกเข้าไป แล้วกด Enter
1

ก็มีข้อมูลใหม่ใน ฐานข้อมูล และมีการ Loop <input> ที่เพิ่มขึ้นมา
2

และก็ถึงปัญหา พอเพิ่มข้อมูลในช่องใหม่ แล้วกด Enter ก็ไม่มี Action ใดๆเลย



Tag : PHP, JavaScript









ประวัติการแก้ไข
2016-09-27 14:53:38
2016-09-27 15:01:43
2016-09-27 15:07:34
2016-09-28 14:22:37
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-09-27 14:50:56 By : Pla2todkrob View : 4595 Reply : 16
 

 

No. 1



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

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

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


ผมเคยเขียนการเพิ่ม-ลบ element ลองดู code ส่วน jquery แล้วเทียบเคียงดูเบื้องต้นครับ
http://jsfiddle.net/kla_61/p41c9cv4/28/
ค่อยๆ จับจุด มองให้ออกว่าเราจะเล่น element ตัวไหน แล้ว jquery จะไม่ยาก

ส่วนคำตอบ : ที่ขึ้นมา 2 อัน อยากให้ลอง echo ค่า a และ b ออกมาดูว่าจริงๆ มันเกิดลูปกี่ครั้ง จากรูปก็น่าจะเหิดลูป 2 ครั้ง แต่มันจะเกิดตรงไหน ลอง echo ค่า a และ b ดูครับ มันจะเป็นการช่วย debug code ไปในตัว






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-27 16:28:51 By : apisitp
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

Quote:
$("#ems<?php echo $a ?>").focus();


ถ้าคุณได้ id ของ element มันก็ focus ให้ถูกนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-27 16:55:58 By : mr.win
 

 

No. 3



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



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

ตอบความคิดเห็นที่ : 2 เขียนโดย : mr.win เมื่อวันที่ 2016-09-27 16:55:58
รายละเอียดของการตอบ ::
ใช่ครับ แต่มันไม่เพิ่มเรื่อยๆ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-27 17:49:22 By : Pla2todkrob
 


 

No. 4



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : apisitp เมื่อวันที่ 2016-09-27 16:28:51
รายละเอียดของการตอบ ::
echo ออกมา ไม่ผิดเลยพี่ ตรงตามต้องการครับ
แต่ประเด็นที่ผมต้องการจริงๆคือ พอกด enter แล้ว input เพิ่ม 2 3 4 5+++ ไปเรื่อยๆครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-27 17:51:29 By : Pla2todkrob
 


 

No. 5



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

Hall of Fame 2012

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


แบบนี้มั้ย ง่ายดี :)
Code (PHP)
<div id="input"></div>
      <input type="hidden" id="num" value="0">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
      <script>
          $(document).keypress(function(e) {
                if(e.which == 13) {
                    var num=parseInt($('#num').val())+1;
                    $('<input>').attr({
                        type: 'text',
                        id: 'txt'+num,
                        name: 'ems[]',
                        value: num
                    }).appendTo('#input').focus();
                    $('#num').val(num);
                }
            });
      </script>



ประวัติการแก้ไข
2016-09-27 18:22:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-27 18:21:47 By : dudesaranyu
 


 

No. 6

Guest


Code (PHP)
<body onload="add()">
        <table id="table"></table>
        <script>
            var table = document.getElementById('table');
            var n = 0;
            function add() {
                n++;
                table.innerHTML += '<tr><th>เลข EMS ชุดที่ ' + n + ' : </th><th><input type="text" name="ems[]" id="ems' + n + '"></th></tr>';
                table.getElementsByTagName('input')[n - 1].focus();
            }
            document.addEventListener('keydown', keyDown, false);
            function keyDown(e) {
                if (e.keyCode == 13) {
                    add();
                }
            }
        </script>
    </body>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-27 21:30:38 By : [email protected]
 


 

No. 7



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

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

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


น่าจะปิดจ็อบได้ล่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-27 23:40:18 By : apisitp
 


 

No. 8



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



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : dudesaranyu เมื่อวันที่ 2016-09-27 18:21:47
รายละเอียดของการตอบ ::
ขอบคุณครับพี่

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 09:39:13 By : Pla2todkrob
 


 

No. 9



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



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : [email protected] เมื่อวันที่ 2016-09-27 21:30:38
รายละเอียดของการตอบ ::
แบบนี้ใช่แบบที่ต้องการเลยครับ

ผมขอถามอีกอย่างครับพี่ พอดีผมไม่เคย เขียน SQL เพื่อรับค่าทีละเยอะๆอ่าครับ

กรณีนี้จะเก็บยังไงทีเดียวหมดครับ เพราะคงไม่ทราบจำนวนที่แน่นอน

แล้วก็ พอผมใส่ค่าไปในช่อง จากนั้น Enter ค่าที่ใส่ไปในช่องด้านบนก็หายไป แต่ช่องเพิ่มขึ้นมา
1.
1
2.
2
3.
3



ประวัติการแก้ไข
2016-09-28 09:45:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 09:41:43 By : Pla2todkrob
 


 

No. 10



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



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

ล่าสุดผมลองเขียนแบบนี้ครับ
ems.php

Code (PHP)
<script>
$(document).ready(function(){
		$("#ems").focus();
});
</script>
<section class="section">
<form method="post">
	<table style="margin:0 auto;">
	<?php
	$sql = "select * from ems where active = 'No'";
	$query = mysql_query($sql);
	$numrows = mysql_num_rows($query);
	if (!$numrows)
	{
		?>
		<tr>
				<th>เลข EMS ชุดที่ 1 : </th>
				<th><input style="text-align:center;" type="text" name="ems" id="ems"/></th>
				<th></th>
		</tr>
		<?php
	}
	else
	{
		
		while($rs = mysql_fetch_array($query))
		{
			$id = $rs['emsid'];
			$ems = $rs['ems'];
			$new = $id+1;
			?>
			<tr>
				<th>เลข EMS ชุดที่ <span name="<?php echo $id ?>"><?php echo $id ?></span> : </th>
				<th><input style="text-align:center;" type="text" name="ems<?php echo $id ?>" id="ems<?php echo $id ?>" value="<?php echo $ems ?>"/></th>
				<th></th>
			</tr>
			<?php
		}
		?>
		<tr>
				<th>เลข EMS ชุดที่ <?php echo $new ?> : </th>
				<th><input style="text-align:center;" type="text" name="ems" id="ems"/></th>
				<th></th>
		</tr>
		<?php
	}
	?>
			
	</table>
</form>
<script>
$('#ems').keypress(function (e) {
			if (e.which == 13) 
			{
				this.form.action='activeems/activeems.php';
			}
			});
</script>
</section>


activeems.php

Code (SQL)
<?php
require('../../connect.php');
 $sql="insert into ems (ems) values ('".$_POST['ems']."')";
 $query = mysql_query($sql);
 if ($sql)
 {
	 header('location:../ems.php');
 }
?>


ผลของมันก็คือ เมื่อใส่ข้อมูลที่ช่อง แล้ว เมื่อกด Enter มีข้อมูลเข้า ฐานข้อมูล 1 ชุด
และ ช่อง EMS เพิ่มมา 1 ช่อง
แต่เมื่อจะเพิ่มอีก ก็ไมไ่ด้แล้ว

4

และสิ่งที่ผมได้จาก code ชุดนี้
1.ช่องว่างช่องแรกเพราะไม่มีข้อมูลใน MySQL
1
2.กรอกข้อมูลเพิ่มเข้าไป
2
3.enter จากนั้น ข้อมูลก็เข้าไปเก็บใน MySQL และเพิ่ม <input> มาใหม่อีก 1 ช่อง
3
4.พอจะเพิ่ม อีก 1 ชุดข้อมูล แล้วกด Enter ก็ไม่มี action ใดๆเกิดขึ้น
5


ประวัติการแก้ไข
2016-09-28 09:53:51
2016-09-28 10:05:49
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 09:52:11 By : Pla2todkrob
 


 

No. 11



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



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

อัพครับ

ใกล้ถึงเป้าหมายแล้วครับ

แต่ก็ยังไม่ถึงอยู่ดี

เบื้องต้นคิดว่าโค้ดใช้ได้นะครับ แต่ไม่รู้ทำไมไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 11:51:39 By : Pla2todkrob
 


 

No. 12



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

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

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


input type="text" name="ems[]"
ส่งค่าเป็น array

หรือให้มันไดนามิคตามจำนวนที่สร้าง
input type="text" name="emsใส่เลขจากการสร้างinputแต่ละครั้ง"

อ้าวๆๆ!! จากที่ท่านทั้งสองเขียน jquery เขาก็กำหนด ems[] เป็น array อยู่แล้วนิ่


ประวัติการแก้ไข
2016-09-28 14:45:03
2016-09-28 14:47:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 14:41:32 By : apisitp
 


 

No. 13



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



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

ตอบความคิดเห็นที่ : 12 เขียนโดย : apisitp เมื่อวันที่ 2016-09-28 14:41:32
รายละเอียดของการตอบ ::
ใช่ครับ

ชุดนี้ใช้ได้เลย
Code (PHP)
<body onload="add()">
        <table id="table"></table>
        <script>
            var table = document.getElementById('table');
            var n = 0;
            function add() {
                n++;
                table.innerHTML += '<tr><th>เลข EMS ชุดที่ ' + n + ' : </th><th><input type="text" name="ems[]" id="ems' + n + '"></th></tr>';
                table.getElementsByTagName('input')[n - 1].focus();
            }
            document.addEventListener('keydown', keyDown, false);
            function keyDown(e) {
                if (e.keyCode == 13) {
                    add();
                }
            }
        </script>
    </body>


แต่ผมไม่รู้จะส่งค่าเข้า ฐานข้อมูลยังไงหลังจากที่ enter แล้ว
เพราะผมต้องการให้หลังจาก Enter แล้วให้ดึงข้อมูลกลับมาโชว์ด้วย
เช่น Enter ข้อมูล ไป 5 ครั้ง จะต้องมี 6 ช่องรวมช่องใหม่ และ 5 ช่องเก่าจะต้องมีข้อมูลทั้งหมด ที่เคย enter ไป
ตรงๆเลยผมอ่านโค้ดนี้ได้ไม่เก่งนัก



ประวัติการแก้ไข
2016-09-28 15:07:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 14:59:55 By : Pla2todkrob
 


 

No. 14



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

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

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


function keyDown(e) { if (e.keyCode == 13) { add(); //หลังจาก enter ก็คงใส่ค่าแถวๆนี้ล่ะ ส่งค่าไปคิวรี่ ส่งค่ากลับมาแสดง $.post("data.php",data,function(data){ console.log(data); }); } }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 16:03:41 By : apisitp
 


 

No. 15



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



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

ตอบความคิดเห็นที่ : 14 เขียนโดย : apisitp เมื่อวันที่ 2016-09-28 16:03:41
รายละเอียดของการตอบ ::
งง สุดๆครับ
ฝั่ง sql ผมต้องเขียนโค้ดรับค่ายังไงครับ
ถ้ารับค่าจากตัวแปร array
Code (PHP)
<?php
require('../../connect.php');
 $sql="insert into ems (ems) values ('".$_POST['ems']."')";
 $query = mysql_query($sql);
 if ($sql)
 {
	 header('location:../ems.php');
 }
?>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 16:21:01 By : Pla2todkrob
 


 

No. 16



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



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

แก้ได้แล้วนะครับ

ขอบคุณทุกความคิดเห็นครับ

ปัญหาเกิดจาก ลืมใส่ แท็กปิดครับ

น้ำตาจะไหล วุ่นวายกันไปหมด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-09-28 16:56:02 By : Pla2todkrob
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการให้ พอกรอกข้อมูลเข้า <input> แล้วกด Enter เพื่อบันทึกเข้า MySQL จากนั้นก็ Loop <input> มาโชว์
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่