[筆記]flash搭配後端程式顯示資料(有點像ajax的感覺)

flash搭配後端程式顯式資料
這已經是我之前學到的方法了

覺得ajax很複雜
參數很難掌握

也可以使用這個方法

flash也有表單物件
做的好的話,跟ajax無異

而且flash因為是用動畫呈現
除了畫面框之外
可塑性也很高

(提外話:我當時學還只是flash MX勒)
(現在已經CS3摟?看來要重學這一塊了)
(聽說action script3.0有點難是吧?)

——————————————-
回歸正題

關鍵的action script

就是loadVariables函數

範例
loadVariables(“progam.asp”, this, “GET”);

在frame第一格中加入此行
當然,目標程式progam.asp要改摟
如果要傳入值給後端程式,你可以這樣寫
loadVariables(“progam.asp?id=3&txt=test”, this, “GET”);

這樣後端程式就可以去request
id和test這二個變數了

那後端程式要輸出什麼東西呢?
內容類似

iscomplete=true&totaldata=2&id1=1&txt1=test1&pic1=pic1.jpg&id2=2&txt2=test2&pic2=pic2.jpg

這樣寫就直接成為flash裡的變數了
直接引用吧

不過有二個重點
第一、後端程式要儲存成unicode
以asp為例子,開頭加入

<%@ LANGUAGE=VBScript CodePage=65001%>

Response.Charset=”Unicode”

第二、你要如何知道變數已經載入了呢?
你要設一個變數(假設為iscomplete)
在flash下第二個frame做if判斷

if(iscomplete=true){
stop();
…..
}


如果載入圖檔位置的變數
要顯示圖片到flash要怎麼辦?

使用loadmovie

開一個空的movie clip 名叫box1,放到舞台

loadMovie(pic1, box1);

載入文字
在box1建立一個文字框叫txt1
就可使用

box1.txt1 = txt1;

補充
要是用迴圈來顯示所有的資料
總不能一個一個輸入吧

沒關係,可以用eval()指令
給個範例
後端程式輸出一個totaldata變數
統計資料的總筆數

for (i=1; i<totaldata; i++) {
eval(“box”+ i+”.txt”+i)= eval(“txt” + i);

}

——————————————————————

方法大致是如此

設計它的顯示方式吧

可以變化的地方很多

祝大家成功

[筆記]ajax技術(概念和後端程式)

最近在研究ajax
快被它搞煩了

一長串的java script
還有瀏覽器的支援度不同
一堆看不懂的語法

從wiki的定義
AJAX全稱為「Asynchronous JavaScript and XML」(異步JavaScript和XML)
,是一種創建交互式網頁應用的網頁開發技術。根據Ajax提出者Jesse James Garrett
—————————————————–

ajax的原理…我知道阿
就是用java script,送出一堆資料給
網頁後端(php asp jsp…等)
再利用後端,寫出一些東西給java script
去分析,顯示

原理很簡單阿

但一直找不到關鍵的東西
1. 送到網頁後端,哪個檔
2. 送了甚麼資料
3. 把資料用瀏覽器手動帶進去,寫了甚麼東西

因為範例的檔案是php
但我用asp…Orz

搞了許久
大概知道他在幹嘛

也依樣畫葫蘆,改了東西出來
(重寫後端的程式,改成ASP版的)

但是….中文亂碼
爬文…叫你設定編碼
除了上面的
<%@ LANGUAGE=VBScript CodePage=950%>
再加入
<%Response.Charset="BIG5"%>
 ——————————————– 

(unicode的話,請把檔案重存成unicode)
改成
<@ LANGUAGE=VBScript CodePage=65001%>

Response.Charset="Unicode"

要不然會錯誤

——————————————– 
java script分析資料
還沒研究….
先照舊
有些範例是用特定字元再spilt
有些範例是整理文字輸出的方式
java script處理,直接變成object以供顯示
大概是這樣

然後就有簡單版的ajax了

我是拿自動完成文字框的範例(Dhtml Autocomplete)
來自http://www.ajaxdaddy.com/

程式設計真的是學海無涯阿

會看ASP原始碼的人
我附上我範例重寫ASP版的後端程式
讓你比較清楚他在幹嘛
資料庫的部分…
請自行到create-countries.php拿取(應該不難認出)
整理成二個欄位id和countryName
id為自動編號
存成country資料表,country.mdb

就可以玩這個範例

 —-ajax-list-countries.asp———————————– —–

<%@ LANGUAGE=VBScript CodePage=950%>
<%
Response.Buffer=True
Dim conn,db,prefix,timeset,connstr,time1,onlinetime,rs
prefix="zym"
Server.ScriptTimeout=40
timeset=0 ‘時區相對東八區(北京時間)
onlinetime=1  ‘保存用戶在線的時間(小時)。
db="country.mdb"
set conn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db)
conn.open connstr
Sub closedb
conn.close
Set conn = nothing
End Sub

getCountriesByLetters=request("getCountriesByLetters")
letters=request.querystring("letters")
if getCountriesByLetters=1 then
set rs1=server.createobject("adodb.recordset")
sql1="select * from [country]  where countryName like ‘"&letters&"%’"
Response.Charset="BIG5"
rs1.open sql1,conn,1,2
if rs1.eof then
    response.write "查無資料!"
    response.end
end if
while not rs1.eof
Response.write rs1("id")&"###"&rs1("countryName")&"|"
rs1.movenext
wend

end if
%>
————————————————————————-

從程式不難看出
當你從瀏覽器尾端放入
……/ajax-list-countries.asp?getCountriesByLetters=1&letters=al

————————————————————————-
就會顯示類似以下的東西

2###Albania|3###Algeria|
————————————————————————-
(後來發現…firefox不支援此範例…Orz)
我再看看解決方法吧

閱讀全文〈[筆記]ajax技術(概念和後端程式)〉