2011年5月30日 星期一

[jQuery] 指定select為選取狀態

範例 HTML
<select id="selectBox">
    <option value="A">Number 0</option>
    <option value="B">Number 1</option>
    <option value="C">Number 2</option>
    <option value="D">Number 3</option>
    <option value="E">Number 4</option>
    <option value="F">Number 5</option>
    <option value="G">Number 6</option>
    <option value="H">Number 7</option>
</script>

jQuery code
<script>
   $('#selectBox option[value=C]').attr('selected', 'selected');
</script>

在網頁裡就會顯示"Number 2"




取得目前點選的val值
<script>
$("#selectBox").change(function(){
    var t = $(this).val(); 
})
</script>


參考網頁 here

[GAE] reCaptcha 應用Python

首先先在 recaptcha 這裡申請網站 Domain Name


之後會給你 Public Key 跟 Private Key 等等會用到


接著在裡選擇語言 here 這裡介紹Python


先從 這裡下載python用的 python_recaptcha-client 下載解壓縮後將 \recaptcha\client\captcha.py 放在你的gae目錄底下

接著在你的檔案 import captcha
呼叫此函數captcha.displayhtml('public_key') 在public_key 裡放入剛剛取得的 Public Key,會回傳一段reCaptcha 的 html


前端的部份就完成,然後在你的post那裡取得你的 recaptcha_challenge_field 、recaptcha_response_field和設定你的private_key跟你的Domain Name



recaptcha_challenge_field = self.request.get('recaptcha_challenge_field')
recaptcha_response_field = self.request.get('recaptcha_response_field')
private_key = 'private_key'   #剛剛取得的private_key
remoteip= 'domain_name '  #剛剛申請的domain_name 

呼叫 captcha.submit(recaptcha_challenge_field,recaptcha_response_field,private_key,remoteip)

會回傳你剛剛在reCaptcha t輸入的是否為正確(return boolean) 就完成啦!!


全部語法

import captcha
from google.appengine.ext import webapp

# Captcha   
domain_name = 'you_domain_name'
public_key = 'public_key'
private_key = 'private_key'

class test(webapp.RequestHandler):
    def get(self):
        captcha_html = captcha.displayhtml(public_key)
        self.response.out.write(captcha_html)
        
    def post(self):
        recaptcha_challenge_field = self.request.get('recaptcha_challenge_field')
        recaptcha_response_field = self.request.get('recaptcha_response_field')
        private_key = private_key
        remoteip = domain_name
    
        ans = captcha.submit(recaptcha_challenge_field,recaptcha_response_field,private_key,remoteip)
        
        self.response.out.write('ans= '+str(ans.is_valid))


有問題可以參考這篇 reCaptcha_to_php 應該大同小異,或是
直接參考 google recaptcha api

2011年5月15日 星期日

Android MenuInflater的使用(layout menu)

1.建立一個 Android 工程我們命名為 MenuInflaterDemo .

2.在 res 目錄下創建 menu 目錄,並且創建 options_menu.xml (我們定義的菜單)文件,代碼如下:


<?xml version= "1.0"  encoding= "utf-8" ?>  
<menu  
  xmlns:android= "http://schemas.android.com/apk/res/android" >  
    <item android:id= "@+id/menu_add"  
          android:title= "Add"  
          android:icon= "@android:drawable/ic_menu_add"  
           />  
    <item android:id= "@+id/menu_wallaper"  
          android:title= "Wallpaper"  
          android:icon= "@android:drawable/ic_menu_gallery"  
           />  
   <item android:id= "@+id/menu_search"  
          android:title= "Search"  
          android:icon= "@android:drawable/ic_search_category_default"  
           />  
   <item android:id= "@+id/menu_setting"  
          android:title= "Settings"  
          android:icon= "@android:drawable/ic_menu_preferences"  
           />  
</menu>

3.在主要程式碼內加入,如下

@Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        MenuInflater inflater = getMenuInflater();  
        inflater.inflate(R.menu.options_menu, menu);      
        return true;  
    }  
      
    @Override  
    public boolean onOptionsItemSelected(MenuItem item) {  
        switch  (item.getItemId()) {  
        case  R.id.menu_add:  
            break ; 
        case  R.id.menu_wallaper:  
            break ;  
        case  R.id.menu_search:  
            break ;  
        case  R.id.menu_setting:    
            break ;  
        }  
        return  super .onOptionsItemSelected(item);  
    }

當選單選到Add or Wallpaper ...則會執行 onOptionsItemSelected 底下 
switch 的case




參考網站:http://blog.csdn.net/Android_Tutor/archive/2010/04/23/5522913.aspx

2011年5月14日 星期六

GAE 使用Session

網址:gae-sessions

下載完後,將gaesessions資料夾放入子目錄

在修改 appengine_config.py 裡的 9行
COOKIE_KEY = 'do not use this key'
更改成
COOKIE_KEY = os.urandom(64)


使用方法和一些函數使用
session = get_current_session()  

session['a'] ='a'  

session.has_key('a')

session.terminate()


session = get_current_session()  
建立 session

session['a'] ='a' 
設立一個為a的session值為'a'

session.has_key('a')
判斷是否有a這個session return bool

session.terminate()
刪除session並終止該用戶


詳細函數可以至gaesessions目錄下的__init__.py


Androd 播放音樂

private MediaPlayer mPlayer;

mPlayer = new MediaPlayer();
mPlayer = MediaPlayer.create(BluetoothControl.this, R.raw.sound_file_1);
mPlayer.start();

在 Android 中,要播放影音檔,新版的 SDK 會建議你用 MediaPlayer 這個類別。裡頭提到,有兩個方法。一個是播放存放在 res/raw 中的影音檔,用下面這種方式。


MediaPlayer.create(BluetoothControl.this, R.raw.sound_file_1);
MediaPlayer.create(context, R.raw.檔名);

參考連結:
http://ysl-paradise.blogspot.com/2008/08/mediaplayercreate.html
http://toimy.blogspot.com/2009/10/android-mediaplayer.html

Eclipse Android SDK的emulator: ERROR: unknown virtual device name

如果遇到這個狀況


emulator: ERROR: unknown virtual device name 'XXX'
emulator: could not find virtual device name 'XXX'


解決方法


1.電腦(我的電腦) 右鍵 -> 內容  -> 進階系統設定 -> 環境變數



2.系統變數->新增
變數名稱:ANDROID_SDK_HOME (固定)
變數值:E:\android-sdk-windows (為你的android-sdk存放路徑)




3.重啟 Eclipse 執行即可。




註:這個方法可以直接在SDK路徑下建立AVD ,若不想直接在SDK下建立也是有其他方法,可以另行參拜Google大神