 |
[PHP]
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)
01. $.ajax({
02. type: "POST" ,
03. url: "<?echo url::base();?>ajax/brand/allbrand.php" ,
04. data: "ran=" +Math.random(),
05. dataType: "json" ,
06. dataCharset: 'json' ,
07. async: false ,
08. success: function (data){
09. for ( var j=0;j<data.length;j++){
10. if (res[i].brand_id==data[j].brand_id){
11. html +=data[j].brand_name;
12. }
13. }
14. }
15. });
Code (PHP)
01. <?php
02. include "../../class/class.mydb.php" ;
03.
04. $sql = "where 1=1" ;
05.
06.
07. $member = new MyDB();
08. $member ->SetTable( "brand" );
09. $member ->Select( "*" , $sql );
10.
11. $point = array ();
12.
13. while ( $data = $member ->Get_Info()){
14. $point [] = $data ;
15. }
16.
17.
18. echo json_encode( $point );
19.
20.
21. ?>
Tag : JavaScript, Ajax, jQuery
|
|
 |
 |
 |
 |
Date :
2010-10-09 10:57:46 |
By :
mozilla9889 |
View :
1881 |
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|