javascript:
function insert_data(pno,id){
var answer = confirm(txt);
if (answer){
var b = "#button"+id; //button的id
$.ajax({
beforeSend: function(){ //ajax發送前做
$(b).attr('disabled',true);
},
type:"POST", //ajax用POST的方式
url:"test.php", //url
async: false,
data:"no="+pno, //傳到url的值
success: function(msg){ //ajax成功時做
if (msg == ""){
msg = "更新資料完成!";
}else{
msg = unescape(msg); //把utf-8轉成big5
}
alert(msg);
},
error: function(){ //ajax失敗時做
alert("修改資料發生錯誤,請再試一次!");
},
complete: function(){ //ajax完成時做
$(b).attr('disabled',false);
}
});
}
}
Html:
<input type="button" name="button1" id="button1>" value="更新" onclick="insert_data('123'1);">
PHP:
$no = $_POST["no"];
echo iconv("big5","utf-8","編號為:".$no); //big5轉utf-8
javascrip中文轉碼可參考:http://werdna1222coldcodes.blogspot.com/2008/12/javascriptescape-encodeuri.html
2008年10月31日 星期五
讓網頁的欄位也能使用上、下、左、右鍵來控制
javascript:
function change_field(evt, id, id_name){
var d = "#"+id_name+(id+1); //下一個欄位
var u = "#"+id_name+(id-1); //上一個欄位
var r = "#txt"+id; //右邊欄位
var l = "#txt_r"+id; //左邊欄位
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode == 40){ //向下鍵
$(d).focus();
}else if (charCode == 38){ //向上鍵
$(u).focus();
}else if (charCode == 37){ //向左鍵
$(l).focus();
}else if (charCode == 39){ //向右鍵
$(r).focus();
}
}
Html:
欄位的排列需有規則,欄位給id,用id來控制
<input type="text" name="txt1" id="txt1" onkeydown="change_field(event, 1,'txt')">
<input type="text" name="txt_r1" id="txt_r1" onkeydown="change_field(event, 2,'txt')">
<input type="text" name="txt2" id="txt2" onkeydown="change_field(event, 3,'txt')">
<input type="text" name="txt_r2" id="txt_r2" onkeydown="change_field(event, 1,'txt')">
<input type="text" name="txt3" id="txt3" onkeydown="change_field(event, 2,'txt')">
<input type="text" name="txt_r3" id="txt_r3" onkeydown="change_field(event, 3,'txt')">
function change_field(evt, id, id_name){
var d = "#"+id_name+(id+1); //下一個欄位
var u = "#"+id_name+(id-1); //上一個欄位
var r = "#txt"+id; //右邊欄位
var l = "#txt_r"+id; //左邊欄位
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode == 40){ //向下鍵
$(d).focus();
}else if (charCode == 38){ //向上鍵
$(u).focus();
}else if (charCode == 37){ //向左鍵
$(l).focus();
}else if (charCode == 39){ //向右鍵
$(r).focus();
}
}
Html:
欄位的排列需有規則,欄位給id,用id來控制
<input type="text" name="txt1" id="txt1" onkeydown="change_field(event, 1,'txt')">
<input type="text" name="txt_r1" id="txt_r1" onkeydown="change_field(event, 2,'txt')">
<input type="text" name="txt2" id="txt2" onkeydown="change_field(event, 3,'txt')">
<input type="text" name="txt_r2" id="txt_r2" onkeydown="change_field(event, 1,'txt')">
<input type="text" name="txt3" id="txt3" onkeydown="change_field(event, 2,'txt')">
<input type="text" name="txt_r3" id="txt_r3" onkeydown="change_field(event, 3,'txt')">
2008年10月30日 星期四
另開視窗為全螢幕
javascript:
function open_w(no){
window.open("test.php?flag=f&no="+no,"Wopen2","fullscreen=yes,location=no,toolbar=no,
memubar=no,status=no,directories=no,resizable=yes,scrollbars=yes");
}
HTML:
<input type="button" name="buttons" id="buttons}>" value="更新" onclick="open_w('123')">
function open_w(no){
window.open("test.php?flag=f&no="+no,"Wopen2","fullscreen=yes,location=no,toolbar=no,
memubar=no,status=no,directories=no,resizable=yes,scrollbars=yes");
}
HTML:
<input type="button" name="buttons" id="buttons}>" value="更新" onclick="open_w('123')">
2008年10月22日 星期三
讓某個欄位獲得焦點、反白
(1)javascript
焦點
document.getElementById('field1').focus();
反白
document.getElementById('field1').select();
(2)jQuery
//當class為link_column且此欄位focus時,把此欄位反白
$(document).ready(function(){
$(".link_column").focus(function() {
$(this).select();
});
});
//欄位內容反白
function click_data(txt_id){
$(txt_id).focus(); //焦點
}
<input class="link_column" type="text" name="txt1" id='txt1' onclick="click_data('txt1');>
焦點
document.getElementById('field1').focus();
反白
document.getElementById('field1').select();
(2)jQuery
//當class為link_column且此欄位focus時,把此欄位反白
$(document).ready(function(){
$(".link_column").focus(function() {
$(this).select();
});
});
//欄位內容反白
function click_data(txt_id){
$(txt_id).focus(); //焦點
}
<input class="link_column" type="text" name="txt1" id='txt1' onclick="click_data('txt1');>
防止Sql injection和XSS injection
傳入string,傳回string
function checksql($str) {
$str = @htmlspecialchars($str);
//過濾單引號成為全形單引號
$str = str_replace("'","’",$str);
//過濾雙引號成為全形雙引號
$str = str_replace('"',"”",$str);
return $str;
}
function checksql($str) {
$str = @htmlspecialchars($str);
//過濾單引號成為全形單引號
$str = str_replace("'","’",$str);
//過濾雙引號成為全形雙引號
$str = str_replace('"',"”",$str);
return $str;
}
字串轉成浮點數或整數
將字串轉成浮點數並傳回值:
parseFloat(字串)
將字串轉成基底的整數並傳回值:
parseInt(字串,基底)
基底是指幾進位:如十進位、十六進位…
parseInt('010',10)
parseFloat(字串)
將字串轉成基底的整數並傳回值:
parseInt(字串,基底)
基底是指幾進位:如十進位、十六進位…
parseInt('010',10)
Mouse Over 的效果
Script:
$(document).ready(function(){
//當id為tdata,tr的id開頭不等於line,當滑鼠移到時加入class,離開時移除class
$("#tdata tr:not([id^='line'])").hover(
function () {$(this).addClass("class_01");},
function () {$(this).removeClass("class_01");}
);
});
Html:
<table border="1" id="tdata">
<tr id="line" class="class_02">
<td>欄位</td>
</tr>
<tr>
<td>資料</td>
</tr>
</table>
$(document).ready(function(){
//當id為tdata,tr的id開頭不等於line,當滑鼠移到時加入class,離開時移除class
$("#tdata tr:not([id^='line'])").hover(
function () {$(this).addClass("class_01");},
function () {$(this).removeClass("class_01");}
);
});
Html:
<table border="1" id="tdata">
<tr id="line" class="class_02">
<td>欄位</td>
</tr>
<tr>
<td>資料</td>
</tr>
</table>
table 基偶列不同顏色
Script:
$(document).ready(function(){
//當id為tdata,tr的id開頭不等於line的加入class
$("#tdata tr:not([id^='line']):even").addClass('class_03');
$("#tdata tr:not([id^='line']):odd").addClass('class_04');
//或id的開頭為tdata,tr的id開頭不等於line的加入class
$("[id^='tdata'] tr:not([id^='line']):even").addClass('td_blue_03');
$("[id^='tdata'] tr:not([id^='line']):odd").addClass('td_green_04');
//或
$("#tdata tr:even").addClass('table_even');
$("#tdata tr:odd").addClass('table_odd');
});
Html:
<table border="1" id="tdata">
<tr id="line" class="class_02">
<td>欄位</td>
</tr>
<tr>
<td>資料</td>
</tr>
</table>
$(document).ready(function(){
//當id為tdata,tr的id開頭不等於line的加入class
$("#tdata tr:not([id^='line']):even").addClass('class_03');
$("#tdata tr:not([id^='line']):odd").addClass('class_04');
//或id的開頭為tdata,tr的id開頭不等於line的加入class
$("[id^='tdata'] tr:not([id^='line']):even").addClass('td_blue_03');
$("[id^='tdata'] tr:not([id^='line']):odd").addClass('td_green_04');
//或
$("#tdata tr:even").addClass('table_even');
$("#tdata tr:odd").addClass('table_odd');
});
Html:
<table border="1" id="tdata">
<tr id="line" class="class_02">
<td>欄位</td>
</tr>
<tr>
<td>資料</td>
</tr>
</table>
2008年10月20日 星期一
只能填數字和小數點
javascript:
function check_keyPress(e){
if ($.browser.msie){ //ie
keycode = event.keyCode;
}else{ //其它
keycode = e.which;
}
if ((keycode > 57 || keycode < 48) && (keycode != 46) && (keycode != 13)) {
return false;
}
}
html:
<input type="text" name="text1" value="" size="5" onkeypress="return check_keyPress(event)">
function check_keyPress(e){
if ($.browser.msie){ //ie
keycode = event.keyCode;
}else{ //其它
keycode = e.which;
}
if ((keycode > 57 || keycode < 48) && (keycode != 46) && (keycode != 13)) {
return false;
}
}
html:
<input type="text" name="text1" value="" size="5" onkeypress="return check_keyPress(event)">
判斷按下的是鍵盤的哪個鍵
javascript:
function check_keyPress(e){
(1)
if ($.browser.msie){ //ie
keycode = event.keyCode;
}else{ //其它
keycode = e.which;
}
alert(keycode);
PS.發現無法判斷上、下、左、右鍵
(2)
var keycode = (e.which) ? e.which : event.keyCode
}
html:
<input type="text" name="text1" value="" size="5" onkeypress="check_keyPress(event)">
function check_keyPress(e){
(1)
if ($.browser.msie){ //ie
keycode = event.keyCode;
}else{ //其它
keycode = e.which;
}
alert(keycode);
PS.發現無法判斷上、下、左、右鍵
(2)
var keycode = (e.which) ? e.which : event.keyCode
}
html:
<input type="text" name="text1" value="" size="5" onkeypress="check_keyPress(event)">
欄位只能填數字-for IE
<input type="text" name="numberin" size="5" value="" id="numberin" onKeyPress="with(window.event)return(keyCode>47&&keyCode<58)">
2008年10月2日 星期四
2008年10月1日 星期三
HTML的META
瀏覽器或是搜尋引勤擎經由 HTTP 協定,讀取 HTML 檔案時會先對其中有意義的 META 做判讀並執行。META 用於網頁的<head>與</head>中。
META 的內容有兩種:name和http-equiv。name內容主要用於描述網頁,以便於查詢引擎機器人尋找、分類。
META 的內容有兩種:name和http-equiv。name內容主要用於描述網頁,以便於查詢引擎機器人尋找、分類。
- <meta name="Generator" content="“>
用以說明生成工具(如Microsoft FrontPage 4.0)等 - <meta name=“keywords" content="“>
向查詢引擎說明網頁的關鍵詞 - <meta name=“description" content="“>
告訴查詢引擎你的網站台的主要內容 - <meta name=“Author” content=““>
告訴查詢引擎網站的作者 - <meta name="Robots" content="all|none|index|noindex|follow|nofollow“>
設定為all:檔案將被檢索,且頁面上的連結可以被查詢
設定為none:檔案將不被檢索,且頁面上的連結不可以被查詢
設定為index:檔案將被檢索
設定為follow:頁面上的連結可以被查詢
設定為noindex:檔案將不被檢索,但頁面上的連結可以被查詢
設定為nofollow:檔案將不被檢索,頁面上的連結可以被查詢
強迫不要使用cache
欲讓使用者每次都能得到最新的資料,強迫不要使用快取(cache)
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ."GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ."GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
php寫下載excel
可以用Pear套件,下面是比較簡單的方式...
<input type="button" name="B1" value="下載EXCEL" onclick="location.href=download.xls">
\t:指Tab鍵(換欄位)
\n:指換行
$txtFile = "欄位A\t欄位B\t欄位C\t欄位D\n";
while ($row = mssql_fetch_array($result)){
$txtFile .= "'$row['id']\n"; //在值的前面加上單引號變成字串
}
//開啟EXCEL檔
//若檔案存在,則刪除檔案
if (file_exists("/localhost/download.xls")){
unlink("/localhost/download.xls");
}
if (!$file = fopen("/localhost/download.xls","w+")){
echo 開啟文字檔失敗
exit;
}
fputs($file,$txtFile); //把資料寫入檔案
fclose($file);
PS.若內容四個空格,會被當成tab鍵,所以…需把它替換掉
str_replace(' ',"",$result[$tab])
<input type="button" name="B1" value="下載EXCEL" onclick="location.href=download.xls">
\t:指Tab鍵(換欄位)
\n:指換行
$txtFile = "欄位A\t欄位B\t欄位C\t欄位D\n";
while ($row = mssql_fetch_array($result)){
$txtFile .= "'$row['id']\n"; //在值的前面加上單引號變成字串
}
//開啟EXCEL檔
//若檔案存在,則刪除檔案
if (file_exists("/localhost/download.xls")){
unlink("/localhost/download.xls");
}
if (!$file = fopen("/localhost/download.xls","w+")){
echo 開啟文字檔失敗
exit;
}
fputs($file,$txtFile); //把資料寫入檔案
fclose($file);
PS.若內容四個空格,會被當成tab鍵,所以…需把它替換掉
str_replace(' ',"",$result[$tab])
javascript 截取字串
String.substr(s,e) :從指定的位置(s)取指定長度(e)的字串。
String.substring(s,e) :從指定的位置(s)到指定的位置(e)的字串。
起始位置從0開始
code = 'abcdefghi'
function checkData(){
//計算字串的長度
var i = document.getElementById('code').value.length;
alert(i); // 9
//從指定位置2,到指定位置4的字串
var j = document.getElementById('code').value.substring(2,4);
alert(j); // cd
//從指定位置2,截取長度4的字串
var k = document.getElementById('code').value.substr(2,4);
alert(k); // cdef
}
String.substring(s,e) :從指定的位置(s)到指定的位置(e)的字串。
起始位置從0開始
code = 'abcdefghi'
function checkData(){
//計算字串的長度
var i = document.getElementById('code').value.length;
alert(i); // 9
//從指定位置2,到指定位置4的字串
var j = document.getElementById('code').value.substring(2,4);
alert(j); // cd
//從指定位置2,截取長度4的字串
var k = document.getElementById('code').value.substr(2,4);
alert(k); // cdef
}
訂閱:
文章 (Atom)