2010年12月10日 星期五

轉錄 javascript Http post function

轉錄自
http://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit

在 javascript 中 透過 function 的方式 來達成 http post 的功能

code 如下

輸入三個變數, url :目標的網址、nams : 參數名稱、 values : 參數值 ; 這裡參數名稱和值是一對一的關係 ,若包成一個物件的話會更完美,不過在此先用簡單的方式






function postToURL(url, names ,values )
{
var form = document.createElement('form');
form.action = url;
form.method = 'POST';



for (var i=0; i< names.length; i++)
{
var child = document.createElement('input');
child.type = "hidden";
child.name =names[i];
child.value = values[i];

form.appendChild(child);

}

document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}

2010年12月7日 星期二

轉錄 javascript 檢查 form 表單是否填寫

轉錄兩個範例

1. 使用JavaScript來判斷form表單是否有填寫!


2. 由表单中onsubmit="return false;"想到的



以下是我的註釋:

範例1. 利用 click function 後檢查完才執行 form 的 submit() 函式


範例2. 在form 中加入 onsubmit 的檢查函式 ,記得要用 onsubmit =" retrun check()" 才有檢查的作用


還有 若網頁東西太多 ,我的用法是 將 form 取一個 id 在用 document.getElementById('formId'); 的方式取出在呼叫form 裡面的變數和函式

2010年12月3日 星期五

轉錄 servlet 使用 session

Session 的定義如下(轉自 wiki ):
在電腦科學領域來說,尤其是在網路領域,會話(session)是一種持久網路協定,在使用者(或使用者代理)端和伺服器端之間建立關聯,從而起到交換資料包的作用機制,session在網路協定(例如telnet或FTP)中是非常重要的部分。

簡單的說就是使用者連線到伺服器上的一個協定紀錄,會儲存到伺服器上。


要在 servlet 使用 session 的話 必須 import javax.servlet.http.HttpSession;

語法如下

// create a session if one does not exist
// 需要使用 true 當作 getSession() 的參數
HttpSession session = req.getSession(true);



之後就可以照依般sesaion 的用法,可以參考 servlet 入門



若要在 google app engine 上使用的 話

在 ..\war\WEB-INF\appengine-web.xml 中
要加入下面這段 XML
<sessions-enabled>true</sessions-enabled>

才可以使用

2010年11月26日 星期五

轉錄 Google Map Api -GDownloadUrl 函式

轉路來源 Maps API Blogs

透過 GDownloadUrl可以讀取 XML 的資料轉成 javascript 所接受的格式,近接使用的話可以吧php 或 jsp 從資料庫撈出來的檔案給 javascript 好結合使用 google map api.

以下是code, 說好是 函式有個Url, 當然要吧XML和html 檔放到webser 上阿,如apache 或 tomcat 上


// Download the data in data.xml and load it on the map.

GDownloadUrl("data.xml", function(data, responseCode) {
// To ensure against HTTP errors that result in null or bad data,
// always check status code is equal to 200 before processing the data
if(responseCode == 200) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < point =" new" responsecode ="=">





X範例的ML檔


<markers>
<marker lat="37.427770" lng="-122.144841"/>
<marker lat="37.413320" lng="-122.125604"/>
<marker lat="37.433480" lng="-122.139062"/>
<marker lat="37.445427" lng="-122.162307"/>
</markers>

2010年11月22日 星期一

Google mpa api - infowindows 使用

主要流程參考 http://www.svennerberg.com/2009/09/google-maps-api-3-infowindows/


首先,先建立google map


// Creating an option object for the map
var options = {
zoom: 7,
center: new google.maps.LatLng(56.83, 15.16),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Initializing the map
var map = new google.maps.Map(document.getElementById('map'), options);
// Creating a marker
var marker = new google.maps.Marker({
position: new google.maps.LatLng(56.8848, 14.7730),
map: map,
title: 'My workplace'
});




宣告 InfoWindow(), 包含顯示的內容在 content 裡面


// Creating an InfoWindow object
var infowindow = new google.maps.InfoWindow({
content: 'Hello world'
});



增加監聽事件,點選標記後就會顯示 infowindow


google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});




Google 說明文件:
http://code.google.com/intl/zh-TW/apis/maps/documentation/javascript/overlays.html#InfoWindows