星期日, 9月 28, 2008

WebBrowser.Document.InvokeScript 發生指定的轉換無效

利用WebBrowser要invoke Javascript時
發生了「指定的轉換無效」
查了半天找不到原因,也沒有看到有人有相同的狀況
後來想到一定是用了thread要動到.net的元件(WebBrowser)
就利用先前的 跨執行緒作業無效
果然解決了

利用array建立jqGrid

官方的example裡有寫
http://trirand.com/jqgrid/jqgrid.html
進入「Loading Data」就會看見Array Data
API說明:Array Data章節

1.plugin參數設定
datatype要設為"clientSide" //或是local
jQuery("#list4").jqGrid({ 
    datatype: "local", 
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
    colModel:[ 
        {name:'id',index:'id', width:60, sorttype:"int"},  
        {name:'invdate',index:'invdate', width:90, sorttype:"date"},   
        ...
        {name:'note',index:'note', width:150, sortable:false} 
    ], 
    ...

2.陣列宣告
配合colModel的欄位名稱設定
var mydata = [ 
    {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},     \
    {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
    {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}
]; 

3.再一個個加入jgGrid
for(var i=0;i<=mydata.length;i++) 
    jQuery("#list4").addRowData(i+1,mydata[i]); 

4.其他資料
Related options in options array: datatype
Related options in colModel: sorttype, datefmt
Related methods : getRowData, delRowData, setRowData, addRowData

要清除Grid所有資料可下 clearGridData()

星期四, 9月 25, 2008

php要改檔頭時,出現錯誤

當php要改檔頭時,
如:
header("Content-Transfer-Encoding: 8bit");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=test.jpg");
header("Content-Length: $size");

有時會出現
Cannot modify header information - headers already sent by ...

解決方法:
除了網路上說明的,要將php tag

之前及之後的空格刪乾淨外
php檔案編碼也會有問題,用utf-8就掛了,但一律用ansi編號不會出問題

星期二, 9月 16, 2008

firefox套件


  • 第三屆 Top 15 套件
  • gTranslate可翻譯網頁上的文字,不過還是裝google toolbar比較方便點,因為還得反白單字,再右鍵看翻譯
  • DownloadHelper



    快速下載YouTube影片...
    除了flv,還可直接下載mp4...真是好東西....

好用的 Firefox 附加元件 - 11月號

  • blog編輯
覺得blogspot的編輯器太陽春了
沒想到firefox就超強的套件 ScribeFire
整合blog帳號後 就可以直接發文或編輯
還有其他強大功能 看別人介紹比較快
download:https://addons.mozilla.org/en-US/firefox/addon/1730
介紹:
1.ScribeFire 1.4.2:Firefox上的部落格文章編輯器

使用方法:

Getting Started With ScribeFire

1.Press F8
2.建立Blog帳號連結,click "新增"
3.輸入自己的blog網址
4.輸入帳密
連結成功後,就會把在blog的文章list拉進來,就可以新增文章或編輯文章

SQL語法

將select出來的欄位插入成新的資料

Insert into tableA (columeX,columeY)
SELECTcolumeX,columeY
FROM tableB


取得所有資料,相同的A欄位不重覆,但當A欄位裡的B欄位不同,需再顯示,但不重覆
hint:Group By兩個欄位

SELECT columeA,columeB
FROM tableA
Group By columeX,columeY


group by欄位A相同的群值,但組內的欄位B不同時,挑較大的顯示

SELECT columeA,max( columeB ) columeB
FROM tableA
GROUP BY columeA

星期三, 9月 03, 2008

PHP Server路徑

$_SERVER[HTTP_HOST]
說明:取得此server的url
Demo:www.google.com/a/b/c.html
=>www.google.com

$_SERVER['HTTP_REFERER'] 但HTTP request可以造假

$_SERVER["REQUEST_URI"]
說明:取得完整的參數路徑URI(不含localhost的位置)
Demo:www.google.com/a.html?b=c;
=>a.html?b=c;
$_SERVER['PHP_SELF']
說明:相對路徑
Demo: www.google.com/a/b/c/d.html
=>a/b/c/d.html

1.取得完整的uri
$_SERVER[HTTP_HOST].$_SERVER["REQUEST_URI"]

2.取得到目前的資料夾(含檔名)
$_SERVER[HTTP_HOST] . $_SERVER['PHP_SELF']

3.取得https or http

if(isset($HTTP_SERVER_VARS[HTTPS])){
$_FULL_URL = 'https://'.$SERVER_NAME;
}else{
$_FULL_URL = 'http://'.$SERVER_NAME;
}

星期二, 9月 02, 2008

透過jQuery取得tag name

沒看到API上有提供取得的方法
google上看到惟一的方法是直接.tagName取得
但要透過.each(),否則會有一堆錯誤
範例:
$("#text").each(function(){
this.tagName;
});