开发笔记(2020-5-28 \~ 2020-7-5)

2020-5-28

ajax 功能初步完成

表格可变颜色,下方小表格可点击后更新,电话号码修改基本完成,验证没做。

下一步,编写更新电话号码


2020-6-1

完成电话号码修改功能,前台后台都已完成。

下一步,完成备注功能。


2020-6-2

优化程序,加快click相应速度,不在调用 ajax 从服务器取json,一次读完,依靠js填充当前记录

要点:
依靠 getElementById,
靠 tr.cells[x].innerHTML取得数据


2020-6-4

ie 兼容性

  • ie创建xmlHttpRequest需使用ActiveX.
1
2
3
4
5
6
7
var xhr;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject){
xhr= new ActiveXObject("Microsoft.XMLHTTP");
}
  • ie 不能使用JSON.parse, 需使用eval
1
2
3
4
if(window.JSON)
var rs =JSON.parse(xhr.responseText);
else
var rs = eval('('+xhr.responseText +');

### 用对象数组(键值对的索引数据)JSON化解决了更改电话号码记录的程序编写。

1
2
3
4
5
6
7
8
9
10
11
12
 $result =$conn->query($sql);
if(($result->num_rows) > 0){
$rs=array();
while($row=$result->fetch_assoc())
$rs[]=$row;
$jsonStr = json_encode($rs);
echo $jsonStr;
}
else
{
header("HTTP/1.1 404 Not Found");
}

php时区的坑

原来的php.ini有一句是:

1
date.timezone=Europe/Berlin      

必须改成

1
date.timezone=Asia/Shanghai      

才能有正确的时间显示


2020-6-8

MariaDB ConnectString

1
2
3
ConnectionString = 
'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={MariaDB ODBC 3.1 Driver};TCPIP=1;SERVER=localhost;UID=root;DATABASE=seycx;PORT=3306;CHARSET=gb2312"'

限制Tedit输入文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// 限制为全数字,长度为len
procedure KeyFilterInt(edit: TEdit; len: Integer; var key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then
begin
key := #0;
Exit;
end;

if (Length(edit.Text) = len) and not (key in [#8, #13]) then
begin
key := #0;
Exit;
end;

end;

//限制为Decimel,len为长度,digits为小数位数,允许加正负号
procedure KeyFilterDec(Edit: TEdit; len: Integer; digits:Integer; var key: Char);
begin
if not (key in ['0'..'9','.','+','-',#8,#13]) then
begin
key := #0;
Exit;
end;

if key=#8 then Exit;

if (Length(edit.Text) = len) and not (key in [#8, #13]) then
begin
key := #0;
Exit;
end;

if (key in ['+','-']) and not (Edit.SelStart=0) then
begin
key:=#0;
Exit;
end;

if (key='.') and (Pos('.',Edit.Text)>0) then
begin
key:=#0;
Exit;
end;

if (Pos('.',Edit.Text)>0) and (Edit.SelStart-Pos('.',Edit.Text)+1>digits) then
key:=#0;

end;

//调用
procedure TForm1.edt2KeyPress(Sender: TObject; var Key: Char);
begin
KeyFilterDec(sender as TEdit,10,2,key); //总长度10位,含符号位,小数位数为2位
end;


2020-6-11

替换图片的VBA代码、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub m1()
'
' m1 宏

'


Dim Left_ As Integer
Dim top_ As Integer
Dim width_ As Integer
Dim height_ As Integer
Dim r As Range
Dim sh As Shape

Set sh = ActiveDocument.Shapes(8)
Set r = sh.Anchor

' ActiveDocument.Shapes(8).Select

Left_ = sh.Left


top_ = sh.top
width_ = sh.width
height_ = sh.height
sh.Delete

ActiveDocument.Shapes.AddPicture FileName:="e:\laoyang\0700252088.jpg", Left:=Left_, top:=top_, width:=width_, height:=height_, Anchor:=r



End Sub

2020-07-05

js日期验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function isLeapYear(year){
if(year % 400 ===0)
return true;

if(year % 100 ===0)
return false;

if(year % 4===0)
return true;
else
return false;
}

function validDate_(year,month,day){
if(isLeapYear(year))
var days=[31,29,31,30,31,30,31,31,30,31,30,31];
else
var days=[31,28,31,30,31,30,31,31,30,31,30,31];

return day<=days[month-1];

}

function validDate(str){
var reg=/^([1-2]\d{3})-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9]|3[0-1])$/;
if(reg.test(str)==false){
return false;
}
var dateArray=str.split("-");
var myYear=Number(dateArray[0]);
var myMonth=Number(dateArray[1]);
var myDay=Number(dateArray[2]);
return validDate_(myYear,myMonth,myDay);
}