» »

[JS] Multiple delete (XMLHttpRequest) & IE truble

[JS] Multiple delete (XMLHttpRequest) & IE truble

Jebiveter ::

Torej, imam eno preprosto tabelo, ki jo v html prikazujem s pomocjo AJAX trikov. Tako tudi dodajam in spreminjam vnose. Tako imam:

tabela.html
ajax.js
backend.php

Torej, v ajax.js imam funkcije, ki z uporabo XMLHttpRequesta klicejo backend.php in rezultate vnasajo v div v tabela.html.

ajax.js
/* The following function creates an XMLHttpRequest object... */
function createRequestObject(){
	var request_o; //declare the variable to hold the object.
	var browser = navigator.appName; //find the browser name
	if(browser == "Microsoft Internet Explorer"){
		/* Create the object using MSIE's method */
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		/* Create the object using other browser's method */
		request_o = new XMLHttpRequest();
	}
	return request_o; //return the object
}


/* The variable http will hold our new XMLHttpRequest object. */
var http = createRequestObject(); 

/* Function called to get the product categories list */
function getTable(){
	http.open('post', 'backend.php');
	http.onreadystatechange = handleTable; 
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	var indx = document.forms['i'].select_sifrant.selectedIndex;
	http.send('redraw=1&sif='+document.forms['i'].select_sifrant.options[indx].value);


}

/* Function called to handle the list that was returned from the internal.php file.. */
function handleTable(){
	if(http.readyState == 4){ //Finished loading the response
		var response = http.responseText;
		document.getElementById('izpis').innerHTML = response;
	}
}


Vsaka druga funkcija, ki klice backend.php mu poslje argumente kot POST ter nato klice handleTable, ki prikaze to kar mu backend.php vrne na request. Ostalo je v vseh funkcijah enako, razen http.send(). Vse lepo in prav.

Imam pa v tej tabeli, ki jo prikazujem en form z checkboxi, ki omogoca, da izbrisem izbrane vnose. Dokler brisem samo po enega vse deluje v redu (v loopu preverjam, ce je nek ID bil oznacen in ga zbrisem). Problem se pojavi ko izberem vec checkboxov, saj se backend.php klice ko pride do prvega oznacenega, potem pa se informacije o "oznacenosti" izgubijo, ker funkcija po oddanem requestu klice handleTable.

Zanima me, kako bi torej popravil tole, da ne bi izgubil informacije o oznacenih boxih?


Drugi problem, ki ga imam pa je naslednji:
V tej isti tabeli imam v vsaki vrstici gumb, ki spremeni trenutno vrstico v text boxe, da lahko urejam direktno v tabeli. To deluje. Ko zadevo uredim imam pac gumb za spremembe "shranit" (kar klice pac neko JS funkcijo in le-ta pa neko php funkcijo). Tukaj se pa pojavijo problemi.

V Firefoxu zadeve delujejo normalno, v IE pa pri "shranjevanju" JS vrze vn napako v stilu: "document.forms.neki.ime_polja_v_formu.value" is null or not an object.

Po tem bi sklepal, da ne najde vrednosti, ki jo ima nek text field. Kako to popravit?!
Najbolj me muci, da stvari v FF delajo v IE pa ne, a je slednji zal deployment browser :(

PS: Vem, da je zmedeno napisano, a s tem se ubadam ze 8 ur in niti priblizno nimam koncentracije za kaj bolj konsistentnega spisat :(
Certainty of death. Small chance of success. What are we waiting for?


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

AJAX težava

Oddelek: Programiranje
121662 (1131) tadejp81
»

AJAX kratke naloge

Oddelek: Izdelava spletišč
192247 (1714) Yacked2
»

AJAX neznana težava

Oddelek: Programiranje
81179 (973) luksorzi
»

java v javascript?

Oddelek: Programiranje
212037 (1740) boss-tech
»

[Ajax in Java] v IE6 dela, v Firefoxu ne

Oddelek: Programiranje
241888 (1642) krho

Več podobnih tem