Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > เกิดปัญหาการใช้ json_encode() ใน ie กับการรับค่าใน javascript



 

เกิดปัญหาการใช้ json_encode() ใน ie กับการรับค่าใน javascript

 



Topic : 101128

Guest




Code (JavaScript)
$.ajax({
            type: "POST",
            url: "update.php",
            data: {'id': id, 'auto': 'auto'},
            dataType : "jsondata",
            success: function(data) {
            var obj = JSON.parse(data);
             alert(obj .day);
            }


ไฟล์ update.php
Code (PHP)
        $array = array('day' =>'1');
        echo json_encode($array);


บนเบราเซอร์ google chome , firefox , และ safari ทำงานได้ แต่ ie 10 ไม่ทำงาน ใครมีแนวทางที่ดี แนะนำหน่อยครับ

ขอบคุณมากครับ



Tag : PHP, JavaScript, Ajax, jQuery







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-09-29 22:31:50 By : big View : 1083 Reply : 10
 

 

No. 1



โพสกระทู้ ( 1,439 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

เท่าที่ดูก็ถูกแล้วนะครับ เป็นไปได้ไมครับว่าไฟล์หน้า ajax มึจาวาสคริปตรงอื่นผิดครับ ให้ลองตรวจสอบดูครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 03:50:36 By : xbeginner01
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (JavaScript)
alert(data);


ดูค่าตัวนี้หน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 05:59:46 By : mr.win
 

 

No. 3

Guest


ครับใน ie แจ้งว่า

SCRIPT1002: Syntax error

var obj = JSON.parse(data);//บรรทัดที่แจ้งว่า error

alert(data); ออกมา ไม่มีค่าอะไรเลย เป็นใน ie อย่างเดียว บนเบราเซอร์อื่น มีค่าปกติครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 06:44:32 By : big
 


 

No. 4



โพสกระทู้ ( 5,146 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ลองเปลี่ยนชื่อตัวแปรดูใหม่ครับ ทั้งตัวแปร ที่ส่งค่า กับตัวแปรที่ return

รู้สึกว่า มันจะใช้ data จนจนเพลิน เลยลืมทำงานมั่งครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 07:08:39 By : deawx
 


 

No. 5

Guest


ตอบความคิดเห็นที่ : 4 เขียนโดย : deawx เมื่อวันที่ 2013-09-30 07:08:39
รายละเอียดของการตอบ ::
เปลี่ยนแล้วครับ แต่ก็ไม่ได้ครับ ผมไม่เข้าใจทำไหม ie ถึงไม่ทำงาน ถ้ามีแนวทางอื่น ๆๆ ช่วยแนะนำหน่อยน่ะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 07:49:11 By : big
 


 

No. 6



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ปัญหาคงไม่ได้อยู่ที่ json_encode() ในฝั่ง PHP แต่น่าจะอยู่ที่ javascript
เท่าที่รู้ setting ของ jQuery.ajax() ชื่อว่า dataType ไม่มี "jsondata" ครับ มีแต่ "json"
ลองเปลี่ยนเป็น "json" ดู แล้วก็ไม่ต้องใช้ JSON.parse() เพราะมันจะทำการ parse ให้อัตโนมัติ
แต่ถ้าคุณต้องการ parse แบบ manual ต้องใช้ dataType "text" ครับ (หรือตัด dataType ทิ้งไปเลย)


dataType = "json"
$.ajax({
            type: "POST",
            url: "update.php",
            data: {'id': id, 'auto': 'auto'},
            dataType : "json",
            success: function(data) {
            //var obj = JSON.parse(data);
             alert(data.day);
            }



dataType = "text"
$.ajax({
            type: "POST",
            url: "update.php",
            data: {'id': id, 'auto': 'auto'},
            dataType : "text",
            success: function(data) {
            var obj = JSON.parse(data);
             alert(obj.day);
            }




ประวัติการแก้ไข
2013-09-30 08:25:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 08:24:39 By : phpinfo()
 


 

No. 7



โพสกระทู้ ( 89 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


คือ ผมลองกับ ie 8 กับ 9 ก็ทำงานได้คราฟ พอมาเป็น ie 10 ก็ไม่ทำงานเหมือนเดิม อาจเป็นที่ ie 10 ที่เครื่องผมอาจจะไม่สมบูรณ์ก็ได้ครับ

ขอบคุณทุกความคิดเห็นครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 10:08:35 By : big
 


 

No. 8



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : big เมื่อวันที่ 2013-09-30 10:08:35
รายละเอียดของการตอบ ::
ie 10 OS ไหนครับ 7 หรือ 8

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 10:10:42 By : Ex-[S]i[L]e[N]t
 


 

No. 9



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ถ้าอย่างนั้นอาจจะมีอีกสาเหตุนึงครับ

update.php
$array = array('day' =>'1');
echo json_encode($array);


ไฟล์นี้เนี่ย มีแค่นี้หรือเปล่า
ก่อนหน้านั้นมี output อะไรหรือไม่ ไม่ว่าจะเป็น newline หรือว่า UTF-8 BOM

ลองดูแบบนี้ครับ แล้ว save ไฟล์ให้เป็น UTF-8 without BOM ดู
<?php
header('Content-Type: text/plain');
$array = array('day' =>'1');
echo json_encode($array);


เพราะเป็นไปได้ว่า JSON.parse() ใน IE10 อาจจะไม่รับ JSON ที่มี newline หรือ UTF-8 BOM อยู่ก่อนข้อมูล
หรืออาจจะเป็นเพราะ header ส่งมาเป็นชนิดอื่น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 10:23:46 By : phpinfo()
 


 

No. 10



โพสกระทู้ ( 3,844 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Twitter Facebook

ผมคิดว่า น่าจะเป็นเพราะ JSON.parse
ลองแบบนี้ดูน่ะครับ
Code (PHP)
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$.ajax({
            type: "POST",
            url: "update.php",
            data: {'id': id, 'auto': 'auto'},
            dataType : "json",
            success: function(data) {
             var json = $.parseJSON(data);
             alert(json.day);
            }
);
</script>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-30 10:59:13 By : mangkunzo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เกิดปัญหาการใช้ json_encode() ใน ie กับการรับค่าใน javascript
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่