|
|
|
ถามเรื่องการส่งค่า แบบ FlashVars โดยมีรูปแบบที่จะส่งเป็น Json |
|
|
|
|
|
|
|
สมมุติมีค่าที่ถูกเข้ารหัสด้วย Json แล้วได้รูปแบบเป็น
"value=[{"index":"0", "path":"image1"},{"index":"1", "path":"image2"},{"index":"2", "path":"image3"]"
พอส่งค่าไปแบบ flashvars เราสั่งเรียกค่า value เราจะได้ค่าเฉพาะ
[{ เนื่องจากว่า มันมองว่า double quote หน้าคำว่า index เป็นตัวสิ้นสุด เลยได้ค่าแค่นั้น
แล้วผมก็ลองแก้ข้อมูลข้างในเป็น แบบ single quote
"value=[{'index':'0', 'path':'image1'},{'index':'1', 'path':'image2'},{'index':'2', 'path':'image3']"
ก็คงยังได้ผลลัพท์แบบเดิมนะครับ
ผมเลยอยากทราบว่า เราจะส่งข้อมูลที่ถูกเข้ารหัสแบบ Json แล้วส่งแบบ Flashvars ต้องทำยังไงเหรอครับ
Tag : PHP
|
|
|
|
|
|
Date :
2011-07-14 21:20:27 |
By :
PhEnSciLaBu |
View :
1508 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันยังไม่ใช่อะครับพี่...ขอบคุณสำหรับคำแนะนำนะครับ
|
|
|
|
|
Date :
2011-07-18 07:29:09 |
By :
PhEnSciLaBu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เคยใช้ FlashVars แล้วใช่ป่าวครับ
ถ้าเคยใช้แล้วปกติจะเป็น <param name="FlashVars" value="name=value"/>
ก็เปลี่ยนเป็น
<param name="FlashVars" value="jsonvar=<?php urlencode(json_encode($var_thai_utf8));?>"/>
ด้านบนเป็นส่วน html ครับ
ส่วน actionscript พี่ใช้ as 2.0 อยู่ครับ
จะต้องใช้ class
http://inner.geek.nz/uploads/JSON.as
ช่วยในการ decode json string ให้เป็น object ใน actionscript ครับ
ดูตัวอย่างที่
http://inner.geek.nz/archives/2007/01/18/loading-json-in-actionscript-2/
ครับ
ถ้าใช้ flashvars คิดว่าใช้คำสั่งแปลง string เป็น object ได้โดยคำสั่งแบบนี้ครับ
import JSON;
var o:Object = JSON.parse(_root.jsonvar);
แล้วก็เอา o มาใช้ได้เลยครับเช่น
trace(o.data1);
|
|
|
|
|
Date :
2011-07-18 08:55:55 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[{"index":"0", "path":"image1"},{"index":"1", "path":"image2"},{"index":"2", "path":"image3"]
ตรงนี้ถ้าให้แปลงเป็น $var_thai_utf8 ก็น่าจะเป็น
<?php
$var_thai_utf8 = array(
array('index'=>'0','path'=>'image1'),
array('index'=>'1','path'=>'image2'),
array('index'=>'2','path'=>'image3'),
);?>
...
....
<param name="FlashVars" value="jsonvar=<?php urlencode(json_encode($var_thai_utf8));?>"/>
ส่วน actionscript หลังจาก parse string เป็น object แล้ว ก็เช่น
trace(o[0].index); ครับ
|
ประวัติการแก้ไข 2011-07-18 09:03:14 2011-07-18 09:16:13
|
|
|
|
Date :
2011-07-18 09:02:31 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณพี่ num นะครับ คือว่า แบบที่พี่บอกมานะครับ ผมทำแล้วครับ
ที่ต้องใช้ json_encode ใน php นะครับ แล้วพอรับค่าใน as ก็มา Json.decode
แต่ปัญหามันเกิดขึ้นที่ว่าพอ Json.decode แล้วเรียกค่า สมุติเรียกแบบที่พี่ว่า o[0].index มันจะให้ค่าแค่ [{
เพราะว่ามันเจอเครื่องหมาย " มันก็เลยได้ค่าออกมาแค่นั้นนะครับ
|
|
|
|
|
Date :
2011-07-19 10:15:32 |
By :
PhEnSciLaBu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กำ
ถ้าอย่างนั้นก็ทำ ฟังชั่น json encode ที่ไม่มี " " ตรงตัวแปร สิครับ
ลองดู
|
|
|
|
|
Date :
2011-07-19 13:43:48 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไว้เดี๋ยวจะทำให้ดูครับ ใช้ as 3.0 หรือครับ
|
|
|
|
|
Date :
2011-07-20 14:50:07 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|