หน้า 1 จากทั้งหมด 1

การส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์ javascript

โพสต์แล้ว: 30/05/2012 4:04 pm
โดย fa12mkungz
คือผมอยากได้ตัวอย่างการส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์

สมมุติโหลดหน้าเพจมาตอนแรก textbox มีค่า 'farm' อยู่ แล้วผมเปลี่ยนโดยพิมพ์คำอื่นลงไป

พอกดส่งก็จะส่งข้อมูลใหม่ออกไป ส่วนข้อมูลใน textbox ที่เราไม่ได้ไปเปลี่ยนค่าก็จะไม่ส่งอะไรออกไปอะครับ

Re: การส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์

โพสต์แล้ว: 30/05/2012 4:23 pm
โดย touleg
ต้องถามว่าส่งค่าแบบไหน ระหว่าง ส่งแบบธรรมดา กับแบบใช้ ajax

- ถ้าส่งแบบธรรมดา มันจะไม่สามารถกำหนดที่ต้นทางได้ว่าจะให้ส่งอะไรไปบ้าง แต่ให้ตรวจสอบค่าที่ฝั่งรับแนว่าค่าที่ส่งมาเป็นค่าว่างไหม หรือมีค่าหรือป่าว จากนั้นก็นำอันที่มีค่าไปใช้งาน
- อีกวิธีแบบ Ajax สามารถอ่านค่าโดยใช้ Javascript ตรวจสอบได้เลยว่า textbox ไหนมีค่าบ้าง ก็ให้นำมาต่อกันเป็นแบบ Serialize (name1=val1&name2=val2&...) แล้วส่งผ่าน ajax ได้เลย จะใช้พวก Jquery หรือจะเขียนขึ้นเองก็ได้ แบบนี้ปลายทางก็ไม่ต้องเขียนตรวจสอบ แต่เป็นการตรวจสอบที่ต้นทางแทน

Re: การส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์

โพสต์แล้ว: 30/05/2012 4:28 pm
โดย touleg
จากที่ดูจากความต้องการแล้ว น่าจะเป็นการแก้ไขข้อมูลใช้ไหมครับ ถ้าใช่ก็ให้ส่งค่าที่มีอยู่ใน Textbox ไปอัพเดทเลย ซึ่งจะเป็นค่าเก่าหรือใหม่นั้นไม่มีปัญหา เพราะถ้าเป็นค่าใหม่มันก็ update เปลี่ยนเป็นค่าใหม่ แต่ถ้าเป็นค่าเก่า มันก็ยังเป็นค่าเดิมถึงแม้จะอัพเดทใหม่ก็ตาม

Re: การส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์

โพสต์แล้ว: 30/05/2012 4:51 pm
โดย fa12mkungz
ใช้ ajax ครับ คือ ถ้ามีรายละเอียดหลายๆช่อง ผมอยากส่งไปบางส่วนที่เปลี่ยนแปลงอะครับ จะรู้ได้ยังไงว่ามันไม่ใช่ข้อมูลเก่า เพราะข้อมูลที่นำมาแสดงใน textbox ตอนโหลดเพจ ผมอ้างจาก id พอใส่ข้อมูลใหม่ เหมือนมันไปทับของเก่าเลย ตอนนี้ผมเลยไม่รู้ว่าจะแยกยังไง

โค้ด: เลือกทั้งหมด

			function ajaxLoad(method,URL,data){
				ajax.open(method,URL);
				ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
				ajax.onreadystatechange = function(){
					if(ajax.readyState==4 && ajax.status==200){
						var obj = eval ("(" + ajax.responseText + ")");  // eval() can be used to convert a JSON text into a JavaScript object.
						//alert(obj.RoomID);
						document.getElementById('jRoomID').value=obj.RoomID;
						document.getElementById('jTelNo').value=obj.TelNo;
						document.getElementById('jPowerNo').value=obj.PowerNo;

โค้ด: เลือกทั้งหมด

	document.write("<tr><td>TelNo					</td><td><input name='jTelNo' type='text' id='jTelNo'></td></tr>");
				document.write("<tr><td>PowerNo				</td><td><input name='jPowerNo' type='text' id='jPowerNo'></td></tr>");
พอผมอยากจะเทียบ ไม่รู้จะเทียบยังไง

โค้ด: เลือกทั้งหมด

			function fncSubmit(){
				var var1 = document.getElementById('jRoomID').value;
				alert(var1);
                                // ผมอยากจะเทียบตรงนี้จะทำยังไงได้บ้างครับ
			}

Re: การส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์

โพสต์แล้ว: 30/05/2012 5:02 pm
โดย mindphp
ตอนดึงข้อมูลเก่ามาใส่ใน form เพื่อแก้ไข
เก็บค่าเก่าใส่ใน hidden field ของแต่ละตัวไว้ด้วย ก่อน ส่งก็เช็คค่าใน input filed ที่เปิดให้ user แก้ไข กับ hidden field แต่ละตัว ถ้าไ่ม่เท่ากันก็ให้ ajax ส่งไป

Re: การส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์

โพสต์แล้ว: 30/05/2012 5:13 pm
โดย fa12mkungz
คือเอาดึงค่ามาด้วยอีกชุดนึง แต่ซ่อนไว้ แล้วนำมาเทียบใช่มั้ยครับ

ขอบคุณครับ

Re: การส่งเฉพาะค่าที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์

โพสต์แล้ว: 13/07/2012 3:08 am
โดย dev24x7
รบกวนขอ link รายละเอียดที่บอกว่า "AJAX... Serialize (name1=val1&name2=val2&...)" หน่อยครับ สนใจตัวนี้ครับ ขอบคุณล่วงหน้าครับผม