2011年2月25日 星期五

轉貼 jQuery 啟用停用元素

如題,有時候想要停用元素,如 button 沒輸入完全部資料不能按


語法就是 在標籤上加入 disabled 就可以

舉例來說 我有兩個button , iLuck 可以控制另一個button 是否可以執行


<input id="iLuck" value="Luck" type="button" onclick="Luckchange()" />
<input id="Test" value="Button" type="button" onclick="ShowMessage()" />



script 函式如下

function Luckchange(){

var _temp = $('#iLuck').val();

if(_temp=="Luck"){
$('#iLuck').val("UnLuck");
$('#Test').attr('disabled', true);
}
else{
$('#iLuck').val("Luck");
$('#Test').attr('disabled', false);
}


//alert(x);
//x.attr('disabled', true);
}

function ShowMessage(){
alert('Cool');
}



附註 , 程式還是要 load jQuery.js 喔


參考資料
男丁格爾's 脫殼玩 [jQ]如何使用 jQuery 來啟用/停用元素?

2011年2月24日 星期四

jQuery AJAX http post

使用 jquery 達成 AJAX 方式很簡單,可以參考 jQuery 教學

在此簡單的 紀錄一下 HTTP POST 的function


$.post(URL,{ParameterName1:ParameterValue1,ParameterName2:ParameterValue2,...},
function(data){
alert(data);
}, Type);

---------------------------------------------------------------------------------

URL 目標的網址
ParameterName 變數名稱
ParameterValue 變數值
data 回傳值,也就是目標網址用網頁開會看到的東西
Type 返回的資料類型 有以下 :"xml", "html", "script", "json", "jsonp", "text"

---------------------------------------------------------------------------------


舉裡來說我要送的位置是 test.jsp, 變數有 Name 和 Id , Name= "A", Id="001" ,
不過 json 讀取是怪怪的,這裡先用text

程式如下

$.post("testServlet",{Name:"A",Id:"001"},
function(data){
alert(data);

var result = eval("(" + data + ")");
alert(data.Name);
alert(data.Id);
}, "text");



testServlet :

public class testServlet extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {

/// get content
String _Name = req.getParameter("Name");
String _Id= req.getParameter("Id");


resp.setContentType("text/plain; charset=utf-8");

resp.getWriter().println("{\"Name\":"+ "\""+_Name+"\"" +
"," + "\"Id\":"+ "\""+_Id +"\"" +
"}");

}


}



-----------------------------

這裡要說的是

回傳型態 直接傳 json 的 話 ,還是沒辦法解讀, 如 大灰狼教成網 就有相關的討論


但若傳純文字的話,解譯也是蠻麻煩的,所以可以將回傳值 利用 eval json 的方式 來解決這個問題 CodeBit



參考
1. jQuery 教學
2. jQuery 官網
3. 大灰狼教成網
4. CodeBit

2011年2月23日 星期三

jqPrint

jQuery 提供了一個 列印區塊的外掛 jQPrint

語法很簡單 選擇一塊要列印的區塊 還有 引用 JQuery.js 和 Jquery.jqprint.0.X.js



var o = $("#divToPrint");
o.jqprint();



$("#divToPrint").jqprint();

下載的地方在這裡


參考來源 jqPrint

2011年2月15日 星期二

使用經緯度查詢當地時間

簡單的使用 經緯度 就可以利用網路服務取得當地時間的XML

範例是紐約的經緯度

http://www.earthtools.org/timezone/40.71417/-74.00639

回傳的XML格式如下



<?xml version="1.0" encoding="ISO-8859-1" ?>
<timezone xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.earthtools.org/timezone-1.1.xsd">
<version>1.1</version>
<location>
<latitude>40.71417</latitude>
<longitude>-74.00639</longitude>
</location>
<offset>-5</offset>

<suffix>R</suffix>
<localtime>14 Feb 2011 20:10:22</localtime>
<isotime>2011-02-14 20:10:22 -0500</isotime>
<utctime>2011-02-15 01:10:22</utctime>
<dst>Unknown</dst>
</timezone>




參考

http://www.earthtools.org/webservices.htm
http://www.getlatlon.com/

使用Google 搜尋城市經緯度

這是Google map 的功能之ㄧ, 不過可以利用 HTTP Get 的請求就可以查詢到 想要搜尋的地方的經緯度和其他資訊, 回傳可以是 XML 或 JSON 的格式


以 New York 為例, 輸入網址(若要傳回JSON 格式就把XML 換成JSON)

http://maps.google.com/maps/api/geocode/xml?address=New+York&sensor=false


傳回的格式如下


<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
<status>OK</status>
<result>
<type>locality</type>
<type>political</type>
<formatted_address>紐約, 紐約州, 美國</formatted_address>
<address_component>

<long_name>紐約</long_name>
<short_name>紐約</short_name>
<type>locality</type>
<type>political</type>
</address_component>
<address_component>
<long_name>紐約</long_name>

<short_name>紐約</short_name>
<type>administrative_area_level_2</type>
<type>political</type>
</address_component>
<address_component>
<long_name>紐約</long_name>
<short_name>NY</short_name>

<type>administrative_area_level_1</type>
<type>political</type>
</address_component>
<address_component>
<long_name>美國</long_name>
<short_name>US</short_name>
<type>country</type>

<type>political</type>
</address_component>
<geometry>
<location>
<lat>40.7143528</lat>
<lng>-74.0059731</lng>
</location>

<location_type>APPROXIMATE</location_type>
<viewport>
<southwest>
<lat>40.5788964</lat>
<lng>-74.2620919</lng>
</southwest>
<northeast>

<lat>40.8495342</lat>
<lng>-73.7498543</lng>
</northeast>
</viewport>
<bounds>
<southwest>
<lat>40.4773990</lat>

<lng>-74.2590900</lng>
</southwest>
<northeast>
<lat>40.9175770</lat>
<lng>-73.7002720</lng>
</northeast>
</bounds>

</geometry>
</result>
</GeocodeResponse>





資料參考
http://code.google.com/intl/zh-TW/apis/maps/documentation/geocoding/

2011年2月13日 星期日

轉貼 fusion chart 設定x 軸標籤顯示

有時候當資料量太多時,若顯示x 軸value 會很混亂,這時後可以利用 showName ='0' 的方式來隱藏部份的x軸value

資料來源 http://202.166.198.131/frameWork/System/Js/FusionChartsFree/Contents/Adv_xAxisNames.html

2011年2月8日 星期二

轉貼 javascript 取得 一年終的第幾天

以下的 function 就可以取得


/**
* GetYearDayIndexByDate
* Get the Day in the year
*
* param: year [in] : the year , EX. 2010
* param: month [in] : the month , EX. 1
* param: date [in] : the date , EX. 1
*
* return: the index number of day
*
*
*/
function GetYearDayIndexByDate(year, month, date){


var dateArr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);


var _Index = 0;

// alert("_day : "+_day);
// alert("_month : "+_month);
// alert("_year : "+_year);

month = month -1 ; //getMonth()是从0開始

for (var i = 0; i < month; i++) {
_Index += dateArr[i];
}
_Index += date;
//判斷是否閏年
if (month > 1 && (year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
_Index += 1;
}

//alert("index : "+_Index);
return _Index;
}




以上轉貼修改自 http://wenwen.soso.com/z/q236092533.htm

2011年2月7日 星期一

Google appengine 排程工作 using java

基本上 在 Java 使用 Cron 排程工作 這裡就寫的很清楚了(英文的資料比較新,Scheduled Tasks With Cron for Java)

簡單的說,在WEB-INF 定義一個 Cron.xml 的文件,之後照者文件定義的時間和呼叫的URL 來做事

不過要注意一點的是, Cron.xml 是會呼叫 Default Version 網址的,也就是說有設很多版本的話要注意將有支援 Cron.xml 呼叫的 URL 設為 Default
如圖