PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

form submit POST ทางไหนได้บ้างครับ

form submit POST ทางไหนได้บ้างครับ
สวัสดีครับ ก่อนอื่นขอบคุณมากๆ สำหรับ callback ครับ วันนี้มีมาอีกแล้วครับ อิอิ ผมต้องการส่งค่า form แบบ POST แบบนี้ครับ เจ้า ajax ตัวนี้จะทำงานโดยการเช็คค่า callback URL จากกระทู้ที่แล้ว โดยทำงานแบบ auto ซึ่งถ้า callback ที่ส่งกลับมาเป็น success ซึ่งมีค่าเท่ากับ 100 จะทำการส่งค่าในหน้า form แบบ post ครับ ซึ่งเดิมทีผมทำเป็นแบบกดปุ่มโดยใช้ แบบที่2 ครับ แต่ทีนี้เปลี่ยนมาเป็นแบบที่ 1 ซึ่งเช็ค auto ครับ จากการลองใช้ .submit() มันจะทำให้ครับ แต่ว่า ajax ก็จะทำงานตลอดแม้ว่าเปลี่ยนหน้าไปแล้วก็ตาม เพราะ function PHP ยังคงทำงานตลอดเพราะค่าที่ตอบกลับมาจาก sever เป็น 100 มันจะไม่เปลี่ยนค่า response จนกว่า user จะร้องขอไปใหม่ครับ

แบบที่ 1 AUTO
setInterval(function(){
     $.ajax({
          type: 'POST',
          url: 'https://demo.co.th/index.php/officer/check_tranfer',
          context: this,
          success: function(data) {
               if(data=='100'){
                    $("#hideAlert").hide();
                    $("#hideAlert2").show();
                    $("#hideLoading2").show();
                    ***//คำสั่ง submit ส่งค่า form***
               }else if(data=='419'){
                    $("#hideAlert").hide();
                    $("#hideAlert3").show();
                    $("#hideLoading").show();
                    setTimeout(function(){ window.location = "https://demo.co.th/index.php/officer/tranfer"; }, 3000);
               }else if(data=='420'){
                    $("#hideAlert").hide();
                    $("#hideAlert4").show();
                    $("#hideLoading").show();
                    setTimeout(function(){ window.location = "https://demo.co.th/index.php/officer/tranfer"; }, 3000);
               }else{
                    $("#hideAlert").show();
               }
}
});
}, 5000);

แบบที่ 2 กดปุ่ม
$('form').submit(function() {
     $.ajax({
     type: 'POST',
     url: 'https://demo.co.th/index.php/customer/check_tranfer',
     context: this,
     success: function(data) {
          if(data=='100'){
               $("#hideAlert").hide();
               $("#hideAlert2").hide();
               this.submit();
          }else if(data=='419'){
               $("#hideAlert2").hide();
               $("#hideAlert").show();
               $("#hideLoading").show();
               setTimeout(function(){ window.location = "https://demo.co.th/index.php/customer/tranfer"; }, 3000);
          }else{
               $("#hideAlert").hide();
               $("#hideAlert2").show();
          }
}
});
return false;
});


โดย:  Aong35258 IP: 124.120.124.xxx วันที่: 27-04-2016 เวลา: 11:22:50

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

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


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


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 6
ได้แล้วครับ ขอบคุณมากๆ ครับ

โดย:  Aong35258 IP: 124.120.124.xxx วันที่: 27-04-2016 เวลา: 15:27:48
 ความคิดเห็นที่ 5
ตัวอย่าง ทุกครั้งหลังสองวินาทีเมื่อโหลดหน้านี้ ตัวอย่างจะทำงาน





ลองดูแนวทางประยุกต์นี้เป็นแนาวทาง
ทำฟอร์ม ซ่อนปุ่ม แล้วให้ submit อัตโนมัติ
ตัวอย่างจะเป็นการ ส่งค่า 1- 6 ตามเงื่อนไขเช็ควินาที
 
ajax_return.php

<?php
header("Content-type:text/html; charset=UTF-8");          
header("Cache-Control: no-store, no-cache, must-revalidate");         
header("Cache-Control: post-check=0, pre-check=0", false); 
$s = date("s");
if($s<=10){
	echo 1;
}elseif($s<=20){
	echo 2;	
}elseif($s<=30){
	echo 3;	
}elseif($s<=40){
	echo 4;
}elseif($s<=50){
	echo 5;	
}else{
	echo 6;	
}
exit;
?>
 
demo.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> </title>
</head>

<body>
<br />

<div style="margin:auto;width:700px;">
<form id="myform1" name="myform1" method="post" action="">
  <input name="data1" type="hidden" id="data1" value="1">
  <input type="submit" name="btn_submit" id="btn_submit" value="Submit" style="visibility:hidden;">
</form>

<pre class="place_show">

</pre>

<br />
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>      
<script type="text/javascript">
$(function(){  

// ตั้งเวลาให้ปุ่ม sumit กดเองอัตโนมัติใน 2 วินาที
	setTimeout(function(){
		$("#btn_submit").trigger("click");					
	},2000);
	
	// เมื่อฟรอืฒเริ่มส่งค่า
	$("#myform1").submit(function(){
		$.post("ajax_return.php",$(this).serialize()
		,function(data){
			$(".place_show").html(data); // ทดสอบแสดงค่าที่กลับมา
			if(data<6){ // ถ้าค่าที่กลับมายังไม่เป็นไปตามเงื่อนไข
				setTimeout(function(){ // ตั้งเวลาให้ปุ่ม กดเองอัตโนมัติใน 2 วินาที
					$("#btn_submit").trigger("click");					
				},2000);
			}else{
				alert("Finished");	
			}
		});
		return false;
	});

});
</script>


</body>
</html>


โดย:  Ninenik IP: 14.207.88.xxx วันที่: 27-04-2016
 ความคิดเห็นที่ 4
ปัญหาอยู่ที่เจ้านายเลยครับ มิใช่กระผม 

โดย:  Aong35258 IP: 124.120.124.xxx วันที่: 27-04-2016 เวลา: 13:07:57
 ความคิดเห็นที่ 3
แล้วแบบเดิมไม่ดีกว่าหรอ ทำงานก็น่าจะคล้ายกัน 

โดย:  Ninenik IP: 14.207.88.xxx วันที่: 27-04-2016
 ความคิดเห็นที่ 2
เป็นระบบโอนเงินครับ พอเรากดโอนเงินจากเว็บ มันจะวิ่งไปที่โทรศัพท์ ถ้าโทรศัพท์กด submit มันจะส่งค่า 100 กลับมา แต่ถ้ากด deny มันจะส่งค่าอื่นกลับมาครับ ที่นี้พอเรากดโอนเงินเสร็จแล้ว ผมก็ให้มันขึ้นหน้า page หนึ่งขึ้นมาเพื่อรอให้ user ไปกดที่โทรศัพท์ครับ ตอนรอนี่เองที่เจ้า ajax แบบที่ 1 จะทำการเช็คทุกๆ 5 วินาที เพื่อเช็คว่า user กด submit หรือ deny ทีนี้ถ้ากด deny มันไม่มีปัญหาครับเพราะผมใช้ windpwn.location มันก็ไปโหลดหน้าใหม่ปกติ แต่ถ้ากด submit มันจะส่งค่าจาก form ไป ซึ่งเมื่อ user กด submit แล้วมันตอบค่ากลับมาเป็น 100 ใช่ไหมครับ เจ้า ajax มันไม่ยอมหยุดทำงาน มันกลับทำงานอยู่เรื่อยๆครับ ซึ่งทำให้มั่วไปหมดเลย นั่นคือปัญหาครับ

โดย:  Aong35258 IP: 124.120.124.xxx วันที่: 27-04-2016 เวลา: 11:58:32
 ความคิดเห็นที่ 1
 ไม่เข้าใจว่าทำอะไร

โดย:  Ninenik IP: 14.207.88.xxx วันที่: 27-04-2016