用POST方法发送AJAX请求

如果用POST方法,需要使用setRequestHeader() 来添加 HTTP 头,并在send()中设置想要传输的数据。示例代码如下。
function ajax_post(){
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//返回数据为xmlhttp.responseText;
}
}
xmlhttp.open("POST","my_file.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("key1=val1 & key2=val2"); //在这里设置key和value
}

    发表于2022-01-19

Javascript制作时钟

以下代码实现了一个简易时钟。
function show_time(){
var date = new Date();
var y = date.getFullYear().toString();
var M = date.getMonth() + 1;
M = M.toString();
var d = date.getDate().toString();
var h = date.getHours().toString();
var m = date.getMinutes().toString();
var s = date.getSeconds().toString();
function fix(s){
while(s.length < 2){
s = "0" + s ;
}
return s;
}
M=fix(M); d=fix(d); h=fix(h); m=fix(m); s=fix(s);
var src = y + "-" + M + "-" + d + "  " + h + ":" + m + ":" + s;
document.getElementById("time").innerHTML = src;
setTimeout("show_time()",100);
}
show_time();

    发表于2022-01-12

textarea输入内容的换行显示

在textarea中,换行符以'\n'或'\r\n'存储,在html页面中无法被识别,需要改为<br>换行符。仍然可以用replaceAll()函数来解决这一问题。示例代码:

document.getElementById('my_ID').replaceAll('\n','<br>');

类似可以解决空格转换的问题。只需要将textarea的'\s'转换成'& nbsp'即可。

    发表于2021-09-29

用replaceAll()解决传参过程中"\"消失的问题

在JS语言中,反斜杠\属于转义字符,如果其后没有要转义的对象,使用POST或GET方法传参时单独的"\"会消失,需要连续打出2个才会保留1个。在JS页面中,也需连续2个才能显示出"\"。实际在页面中显示的反斜杠个数,一般为在字符串中存储个数的\(\frac{1}{2}. \)

为了解决传参后得到的字符串中原有的"\\\\"变为"\",可以用replaceAll()函数将1个变为2个,示例代码如下:

let tmp = "\\";
console.log( tmp.replaceAll('\\','\\\\') );

控制台将输出"\\\\"。

    发表于2021-08-12

JS函数实现创建并发送表单

以POST方法为例:

function post(URL,DATA){
    var temp = document.createElement("form");
    temp.action = URL;
    temp.method = "POST";
    temp.style.display = "none";
    for(x in DATA){
        var y = document.createElement("textarea");
        y.name = x;
        y.value = DATA[x];
        temp.appendChild(y);
    }
    document.body.appendChild(temp);
    temp.submit();
}

其中URL为action的目标文件,DATA是表单的键值对对象。

    发表于2021-08-12

AJAX实现与php交互

AJAX可以实现在不刷新页面的情况下发送请求并得到数据。代码如下:

function my_func(){
     xmlhttp=new XMLHttpRequest();
     xmlhttp.onreadystatechange=function(){
        
    if(xmlhttp.readyState==4&&xmlhttp.status==200){
    //返回的结果变量名为xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","my_PHP.php?key="+val,true);
    //找到请求的php文件,问号后面为GET参数;
    xmlhttp.send();
}

然后在php文件中用$_GET["key"]调用参数即可。返回的数据为php文件"echo"的内容

事实上,xmlhttp的创建还要单独考虑旧版IE浏览器的情形,但一般应用较少,故在此略去。

    发表于2021-08-09