innerHTML
Sziasztok !
Meggyűlt a bajom az innerHTML -el...
Kezdem az elején. Szóval a lényeg az, hogy input adatokat tárolok el adatbázisban, és onnan majd meg is jelenítem őket, ezért a speciális karaktereket megpróbáltam kivédeni. Írtam egy saját függvényt ami lecseréli a következő karakterket : &, ", ', <, >, \. A htmlspecialchars azért nem volt jó nekem, mert abban nincs benne a \ helyettesítése illetve levédése. Tudom hogy ott van erre a célra az addslashes() de minek két külön függvényt használni, sokkal egyszerűbb csak egyet :) Szóval az adatok kódolva tárolódnak el, és táblázatszerűen jelenítem meg őket.
Most jön a JavaScript rész. Van egy olyan funkcióm hogy "módosítás". Ez annyit csinál, hogy az egyes celláknak a tartalmát kimenti egy változóba (valtozo = cella.innerHTML) majd kicseréli egy szövegmezőre benne a kimentett tartalommal (cella.innerHTML = <input type='text' value='valtozo' />). És innentől lehet szerkeszteni. A probléma ott lép fel, hogy a "speciális" karakterek idő közben valahol "elvesznek". Tegyük fel, hogy az egyik inputom az 'akarmi' - kifejezés volt. Ez a szerverre küldés után átkódolódik a következőre : 'akarmi' Viszont ! mikor az esetleges módosításra kerül sor, akkor a cella.innerHTML csak annyit ad vissza hogy akarmi, az 'akarmi' - helyett. És nem értem hogy miért ?
Ha valakinek esetleg van ötlete szivesen várom :)
■ Meggyűlt a bajom az innerHTML -el...
Kezdem az elején. Szóval a lényeg az, hogy input adatokat tárolok el adatbázisban, és onnan majd meg is jelenítem őket, ezért a speciális karaktereket megpróbáltam kivédeni. Írtam egy saját függvényt ami lecseréli a következő karakterket : &, ", ', <, >, \. A htmlspecialchars azért nem volt jó nekem, mert abban nincs benne a \ helyettesítése illetve levédése. Tudom hogy ott van erre a célra az addslashes() de minek két külön függvényt használni, sokkal egyszerűbb csak egyet :) Szóval az adatok kódolva tárolódnak el, és táblázatszerűen jelenítem meg őket.
Most jön a JavaScript rész. Van egy olyan funkcióm hogy "módosítás". Ez annyit csinál, hogy az egyes celláknak a tartalmát kimenti egy változóba (valtozo = cella.innerHTML) majd kicseréli egy szövegmezőre benne a kimentett tartalommal (cella.innerHTML = <input type='text' value='valtozo' />). És innentől lehet szerkeszteni. A probléma ott lép fel, hogy a "speciális" karakterek idő közben valahol "elvesznek". Tegyük fel, hogy az egyik inputom az 'akarmi' - kifejezés volt. Ez a szerverre küldés után átkódolódik a következőre : 'akarmi' Viszont ! mikor az esetleges módosításra kerül sor, akkor a cella.innerHTML csak annyit ad vissza hogy akarmi, az 'akarmi' - helyett. És nem értem hogy miért ?
Ha valakinek esetleg van ötlete szivesen várom :)
Bocsánnat...
# ezt cseréld át valamire,
Megoldódott a dolog.....