|
|
|
ส่งค่าด้วย jquery ให้กับ php ยังไงครับลองส่งแล้วไม่ได้ค่าอะไรมาเลย |
|
|
|
|
|
|
|
Code (PHP)
<?php
echo print_r($_REQUEST); exit;
ทดสอบคำสั่งนี้ ที่บันทัดแรกของโปรแกรมตัวรับ
|
|
|
|
|
Date :
2016-04-17 12:02:02 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปลี่ยน โค๊ด jquery ดูไหมครับ คำสั่ง $.post() ผมไม่เคยใช้ ใช้แต่โค๊ดเดิมๆ ที่ใช้ได้
Code (JavaScript)
$.ajax({ url: 'xxxxxxxx.php', type:'POST', data:{ name: 'xxxxxx', 'test':'zzzzz' }})
.done( function(msg){
alert( msg );
});
php ตัวรับ
Code (PHP)
<?php
echo json_encode($_REQUEST); exit;
|
ประวัติการแก้ไข 2016-04-17 12:15:34
|
|
|
|
Date :
2016-04-17 12:14:58 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2016-04-17 21:21:53 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือไปทดลองมาแล้วครับมันได้กลับมาเป็นค่านี้น่ะครับ
[]
ถ้าลองเปลี่ยนจาก $_REQUEST เป็น $_POST['name'] มันจะได้เป็น null น่ะครับ
|
|
|
|
|
Date :
2016-04-17 22:22:14 |
By :
serpens |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
link_list[index] มาจากไหนครับ เซทไว้ยังไง
|
|
|
|
|
Date :
2016-04-18 07:28:54 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การส่ง ajax โดยใช้ jquery ทำได้หลายแบบ
Method get
Code (JavaScript)
$.get('url.php', {inputname1: 'value1', inputname2: 'value2'});
Method post
Code (JavaScript)
$.post('url.php', {inputname1: 'value1', inputname2: 'value2'});
บางครั้งการส่ง data ผ่านรูปแบบ {...} อย่างนี้อาจติดขัด การส่งแบบ name=val&name2=val อย่างนี้จะใช้ทดแทนได้ แต่ใช้กับวิธีแบบสั้นข้างบนผมไม่ทราบ จึงมีอีกรูปแบบที่รองรับได้ทั้ง method get, post คือแบบที่คุณข้างบนยกตัวอย่างไว้นั่นเอง
การใช้ .ajax จะกำหนด dataType ได้ด้วยเพื่อบอก server ว่าให้ส่ง response เป็นแบบไหน เช่น html, json
.ajax
Code (JavaScript)
$.ajax({
url: 'url.php',
method: 'POST',
data: 'inputname1=value1&inputname2=value2',
dataType: 'html',
success: function(response) {
console.log(response);
}
});
การตรวจสอบการรับค่า เนื่องจากคุณส่งแบบ POST ดังนั้นให้ลอง print_r($_POST) ออกมาดูเพื่อเช็คว่าค่าที่ได้รับจากผู้ใช้มีอะไรบ้าง
ส่วนการตรวจสอบค่า data ที่ส่ง ให้ทำการ console.log() ออกมาดูว่ามันมีอะไรอยู่ที่จะส่งไปเนี่ยน่ะครับ
อ้างอิง
https://api.jquery.com/jquery.get/
http://api.jquery.com/jquery.post/
http://api.jquery.com/jQuery.ajax/
|
ประวัติการแก้ไข 2016-04-18 09:23:04
|
|
|
|
Date :
2016-04-18 09:21:56 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้ว console.log ค่า data ที่ส่งไปล่ะครับ?
|
|
|
|
|
Date :
2016-04-18 09:42:35 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้างั้นปัญหาคือคุณเซ็ทค่าใน link_list[index] ไม่ถูก อาจจะไม่ได้เซ็ทอะไรเลย มันก็เลยไม่ได้ส่งอะไรไป คุณต้องแก้ตรงนี้
|
|
|
|
|
Date :
2016-04-18 11:24:29 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองทดสอบคำสั่งที่ให้เป็นตัวอย่าง แบบง่ายๆ ไฟล์เดียวก่อนครับ
ศึกษาการทำงานของมัน แล้วค่อยนำไปประยุกต์ใช้
Code (PHP)
<?php
if(isset($_REQUEST['test'])){
echo json_encode($_REQUEST); exit;
}
?>
<!doctype html>
<html><head>
<meta charset="utf8"><title>TEST</title>
<script src="/js/jquery-2.1.1.min.js"></script>
<script>
//////////////////////////////////////////
var list_link = new Array( '', 'Date 1', 'Data 2', 'Data 3');
//////////////////////////////////////////
$(document).ready(function(){
$('button').click(function(){
var index = parseInt('0'+$('select').val());
if( index == 0 ){ alert('กรุณาเลือกรายการ'); $('select').focus(); return; }
$.ajax({ type:'POST', data: { test: 'var test', link_msg: list_link[index] }})
.done(function(msg){
$('div').html( msg );
});
})
});
</script>
</head>
<body>
<select>
<option value=''>Please select</option>
<option value='1'>No 1</option>
<option value='2'>No 2</option>
<option value='3'>No 3</option>
</select>
<button type=button>Test Send</button>
<div><?="Data TEST on here"?></div>
</body>
</html>
|
|
|
|
|
Date :
2016-04-18 12:27:32 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอถามเพิ่มเติมหน่อยครับ มันเกี่ยวกับว่าต้องมีการกดปุ่มให้เพื่อส่งค่าไหมครับ
พอดีผมจะทำให้มันส่งค่าเองทุกครั้งที่มีการ update ค่า ไม่ต้องกดปุ่ม
มันเลยเป็นสาเหตุให้ไม่มีค่าส่งไปหรือเปล่าครับ
|
|
|
|
|
Date :
2016-04-18 12:35:00 |
By :
serpens |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|