Jquery กับ Json v.1.3.2 กับ v.1.4.2 ลบกวนผู้รู้ช่วยแนะนำหน่อยครับ
คือผมใช้ ver 1.3.2 ถ้าใช้สคลิปแบบนี้ Json ก็ส่งค่ามาทำงานตามปกติอ่ะครับ
แต่พอผมเปลี่ยนมาให้ V.1.4.2 มันกลับไม่ทำงาน เหมือนกันว่าค่าที่ส่งกลับมันเป็น Text
ผมลอง ใส่ header('Content-type: application/json'); ใน php ก็ไม่ได้ครับ ดูใน firebug เหมือนจาขึ้น warning ด้วย
ลบกวนด้วนนะครับ
Code (JavaScript)
$.ajax({
type: "POST",
url: "<?echo url::base();?>ajax/brand/allbrand.php",
data: "ran="+Math.random(),
dataType: "json",
dataCharset: 'json',
async: false,
success: function(data){
for(var j=0;j<data.length;j++){
if(res[i].brand_id==data[j].brand_id){
html +=data[j].brand_name;
}
}
}
});
Code (PHP)
<?php
include "../../class/class.mydb.php";
$sql="where 1=1";
//echo $sql;
$member= new MyDB();
$member->SetTable("brand");
$member->Select("*",$sql);
$point = array();
while($data = $member->Get_Info()){
$point[] = $data;
}
//print_r($point);
echo json_encode($point);
//echo "$user".","."$pass";*/
?>
Tag : JavaScript, Ajax, jQuery
Date :
2010-10-09 10:57:46
By :
mozilla9889
View :
1833
Reply :
8
ค่าที่ส่งมาไ่ม่ใช่ json มั้งครับ ต้องมี ชื่อตัวแปรด้วย
ex.
$point = array(
'abc' => 'abc',
'bcd' => 'bcd',
);
แต่อันนี้น่าจะเป็น array ส่วน jquery 1.4 มันตรวจสอบค่าว่าเป็น json จริงหรือป่าวด้วยนะครับ ไม่เหมือนเวอร์ชั่นเก่า
ให้แก้
echo json_encode(array('data' => $point));
และ
success: function(data){
for(var j=0;j<data.data.length;j++){
if(res[i].brand_id==data.data[j].brand_id){
html +=data.data[j].brand_name;
}
}
}
หรือไม่ก็ใช้ dataType: 'script' ครับ
ลองดูละกัน
ประวัติการแก้ไข 2010-10-09 14:54:34
Date :
2010-10-09 14:32:22
By :
pjgunner.com
warning มันว่าไงอะครับ
Date :
2010-10-10 02:48:14
By :
PlaKriM
<br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at D:\AppServ\www\project\ajax\model\allmodel.php:1) in <b>D:\AppServ\www\project\ajax\model\allmodel.php</b> on line <b>18</b><br />
[{"model_id":"7","model_name":"ACCORD","brand_id":"15"},{"model_id":"4","model_name":"Mu-7","brand_id":"6"}]
ครับ
Date :
2010-10-10 03:29:53
By :
mozilla9889
ที่มันไม่ได้เพราะมันมี output ตรงนี้แหละครับ มันเลยไม่เป็น json format
มันคือ error ยอดฮิต ติดอันดับหนึ่งใน thaicreate chart top 20
หาดูวิธีแก้ ตอบไว้เยอะแยะมากมาย Cannot modify header information หาเลย
Date :
2010-10-10 03:40:20
By :
PlaKriM
ขอบคุณมากครับ นั่งงมมาเป็นอาทิตย์ ^^ สรุปคือเป็นที่ Save เป็น utf-8 พอเปลี่ยนเป็น ANSI ใช้ได้แล้วครับ
Date :
2010-10-10 06:38:00
By :
mozilla9889
json_encode() ใช้ได้เฉพาะ UTF8 ครับ ดังนั้นถ้าใช้ ansi จะใช้ภาษาไทยได้หรือ?
Date :
2010-10-10 11:02:14
By :
pjgunner.com
ใช้ UTF without BOM ซิครับ
Date :
2010-10-10 12:15:29
By :
PlaKriM
Load balance : Server 02