ajax_form.js

来自「Try2php整站系统(Try2php CMS)Try2php整站系统(Try2」· JavaScript 代码 · 共 107 行

JS
107
字号
if (!window.XMLHttpRequest) {   window.XMLHttpRequest=function (){   	return new ActiveXObject("Microsoft.XMLHTTP");   }}//@desc    load a page(some html) via xmlhttp,and display on a container//@param   url          the url of the page will load,such as "index.php"//@param   request      request string to be sent,such as "action=1&name=surfchen"//@param   method       POST or GET//@param   container          the container object,the loaded page will display in container.innerHTML//@usage //         ajaxLoadPage('index.php','action=1&name=surfchen','POST',document.getElementById('my_home'))//         suppose there is a html element of "my_home" id,such as "<span id='my_home'></span>" //@author  SurfChen <surfchen@gmail.com>//@url     http://www.surfchen.org///@license http://www.gnu.org/licenses/lgpl.html LGPLfunction ajaxLoadPage(url,request,method,container){	method=method.toUpperCase();	var loading_msg='<center><img src="images/loading.gif"></center>';//the text shows on the container on loading.	var loader=new XMLHttpRequest;//require Cross-Browser XMLHttpRequest	if (method=='GET')	{		urls=url.split("?");		if (urls[1]=='' || typeof urls[1]=='undefined')		{			url=urls[0]+"?"+request;		}		else		{			url=urls[0]+"?"+urls[1]+"&"+request;		}				request=null;//for GET method,loader should send NULL	}	loader.open(method,url,true);	if (method=="POST")	{		loader.setRequestHeader("Content-Type","application/x-www-form-urlencoded");	}	loader.onreadystatechange=function(){		if (loader.readyState==1)		{			container.innerHTML=loading_msg;					}		if (loader.readyState==4)		{			container.innerHTML=loader.responseText;		}	}	loader.send(request);}//@desc    transform the elements of a form object and their values into request string( such as "action=1&name=surfchen")//@param   form_obj          the form object//@usage   formToRequestString(document.form1)//@notice  this function can not be used to upload a file.if there is a file input element,the func will take it as a text input.//         as I know,because of the security,in most of the browsers,we can not upload a file via xmlhttp.//         a solution is iframe.//@author  SurfChen <surfchen@gmail.com>//@url     http://www.surfchen.org///@license http://www.gnu.org/licenses/lgpl.html LGPLfunction formToRequestString(form_obj){	var query_string='';	var and='';	//alert(form_obj.length);	for (i=0;i<form_obj.length ;i++ )	{		e=form_obj[i];		if (e.name!='')		{			if (e.type=='select-one')			{				element_value=e.options[e.selectedIndex].value;			}			else if (e.type=='checkbox' || e.type=='radio')			{				if (e.checked==false)				{					continue;					}				element_value=e.value;			}			else			{				element_value=e.value;			}			query_string+=and+e.name+'='+element_value.replace(/\&/g,"%26");			and="&"		}			}	return query_string;}//@desc    no refresh submit(ajax) by using ajaxLoadPage and formToRequestString//@param   form_obj          the form object//@param   container          the container object,the loaded page will display in container.innerHTML//@usage   ajaxFormSubmit(document.form1,document.getElementById('my_home'))//@author  SurfChen <surfchen@gmail.com>//@url     http://www.surfchen.org///@license http://www.gnu.org/licenses/lgpl.html LGPLfunction ajaxFormSubmit(form_obj,container){	ajaxLoadPage(form_obj.getAttributeNode("action").value,formToRequestString(form_obj),form_obj.method,container)}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?