Просмотр файла res/js/process.js

Размер файла: 4.16Kb
	function show(state)
	{	
		document.getElementById("result").innerHTML = '';	//Перед показом очищаем результат последнего запроса
		clear();//Очищаем форму
		document.getElementById("popup").style.display = state;		
	}
	
	function clear() 
	{
		document.forms.namedItem("new_data").reset();
	}
	
	function getXmlHttp()
	{
		var http;
	    if (window.XMLHttpRequest)// code for IE7+, Firefox, Chrome, Opera, Safari
		http = new XMLHttpRequest();
        else// code for IE6, IE5
        http = new ActiveXObject("Microsoft.XMLHTTP");
		return http;
	}
	
	var inputs = ["brand_car","fuel_consumption","brand_fuel","max_speed"];
	function get_data(data,act,return_val,default_val)
	{
		//Если не через newForm, то нужно отправлять заголовки, если существуют POST данные
			var xmlhttp = getXmlHttp();
			var result=return_val;//Переданный document.getElementById
			xmlhttp.onreadystatechange = function()
			{
				if(default_val)
				result.innerHTML = '<img src="res/imgs/loader.gif">';
				if(xmlhttp.readyState==4 && xmlhttp.status==200)
				{
					var res = xmlhttp.responseText;
					if(res.indexOf("<document")!=-1)
					{
						parser = new DOMParser();
						xmlDoc = parser.parseFromString(res,"text/xml");
						alert(xmlDoc.getElementsByTagName("status")[0].innerHTML);
					}
					else
					result.innerHTML = res;
				}
			};
				  
				xmlhttp.open("POST","query_process.php?act="+act, true);
				xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlhttp.setRequestHeader("Connection", "close");
				xmlhttp.send(data);
	}
	
	function delete_data(id)
	{
		get_data("car_id="+id,"delete_data",document.getElementById("result"),false);//Удаление
		var row = document.getElementById("row_"+id);
		if (row.parentNode){
		row.parentNode.removeChild(row);
		}
	}
	
	function save_data(name_act,id)
	{
		var q_str='',field_show;
		var row=document.getElementById("row_"+id);
		var inp=row.getElementsByTagName("input");//Массив всех input

		for(var i=0;i<inp.length;i++)
		{
			if(inp[i]!=undefined)
			q_str+=inp[i].name+"="+inp[i].value+"&";
		}
		//alert(q_str);
		get_data(q_str+"car_id="+id,name_act,row,false);
	}
	
	function sendReq(oData,act,return_val)
	{	
		//oData - POST данные
		//act - действие
		//return_val - селектор для результата
		var xhr = getXmlHttp();
	
		var result=document.getElementById(return_val);
		xhr.onload=xhr.onerror = function()
		{
			if(xhr.status!=200)
			result.innerHTML='Ответ не получен!';
		}
			xhr.onreadystatechange=function(){
			result.innerHTML='<img src="res/imgs/load.gif">';
			//индикатор загрузки
			
			if(xhr.readyState==4 && xhr.status==200)
			{
				if(xhr.responseText.indexOf("<div code=")==-1)
				{//Если пришел ответ без ошибки
					var tbl = document.getElementById("view_data");
					var row = tbl.insertRow (-1);
					var start = xhr.responseText.toLowerCase().indexOf("<td>");
					var end = xhr.responseText.toLowerCase().indexOf("</td>");
					var idn = xhr.responseText.substr(start+4,end-4);
					row.id="row_"+idn;
					row.innerHTML = xhr.responseText;//Если все ок - вставляем строку в таблицу
					result.innerHTML='';
				}else
				result.innerHTML=xhr.responseText;//Выводим ошибку
			}

			};

		xhr.open("POST", "query_process.php?act="+act, true); 
		xhr.send(oData);
	
	}

	function handler(act_with_data)
	{//Обработчик нажатия button
		var form = document.forms.namedItem("new_data");	
		var oData = new FormData(form);
		
		sendReq(oData,act_with_data,'result');//act_with_data - для определения редактирования или добавления
	}
	
	function view_form(field_name,id)
	{
		var row=document.getElementById("row_"+id);
		var cell=row.getElementsByClassName(field_name);
		var go_field = cell[0].getElementsByTagName('input');

		if(go_field[0]==undefined)
		{
			get_data("field="+field_name+"&car_id="+id,"edit_data",cell[0],false);
		}
		//Запрос на получение из базы
		
	}