Toon posts:

[JS/Html] Quotes en modalforms

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben hier bezig met een soort van CMS brouwsel, en ik heb een probleem met quotes.

Ik heb namelijk een functie "Nieuw Artikel" op mn hoofdpagina. Als deze wordt ingedrukt, dan wordt een een modalform gestart, waarin het nieuwe artikel mee "ingesteld" kan worden.

code:
1
2
3
var rValue = window.showModalDialog
("dialogs/add_art_main.html", "", 'dialogHeight:250px;dialogWidth:180px;
center:yes;help:no;resizeable:no;edge:raised;scroll:no;status:no');


Deze roept dus een nieuw venstertje aan waarin een formuliertje staat waarin bijvoorbeeld de artikelnaam ingevuld kan worden.

Wanneer deze naam is ingetypt, kan de gebruiker op "submit" duwen, en dan zal het volgende gebeuren:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function ok()
{
if (document.form1.ART_NAME.value == "")
{
    alert("You must fill the article name field");
} else {
    var a = new Array;
    a[0] = document.form1.ART_NAME.value; 
    a[1] = waarde2;
    a[2] = waarde1;
    
    window.returnValue=a;
    window.close();
}
}

offtopic:
let niet op de ouderwetsche aanroep e.d.


Wanneer dit is gedaan dan wordt de array a, dus de variabele rvalue gestopt.

Deze wil ik nu versturen (naar server om te verwerken in database), en dit gebeurt met het volgende form;

code:
1
2
3
4
5
6
7
8
9
10
11
document.write('<form name="addform" method="post" action="content.php">');
var zin = '<input type="hidden" name="added" value="yup">'; 
document.write(zin);
var zin = '<input type="hidden" name="ART_NAME" value="' + rValue[0] + '">'; 
document.write(zin);
var zin = '<input type="hidden" name="ART_CAT" value="' + rValue[1] + '">'; 
document.write(zin);
var zin = '<input type="hidden" name="ART_USERS" value="' + rValue[2] + '">'; 
document.write(zin);
document.write("</form>");
document.addform.submit();



Probleem is echter dat ik ook " dubbele qoutes in de naam wil kunnen invullen. Nadeel is dat als ik bijvoorbeeld de naam: Hioxz zuigt "stof" zou invullen dan krijg ik als POST variabele in PHP te zien: Hioxz zuigt

En dat komt omdat de dubbelle quote in dit bovenstaande formulier niet geescaped worden.

Ik heb nu al geprobeerd deze te escapen met een replace functie in javascript, maar dat werkt ook niet goed.

De vraag is dus: Hoe kan ik ervoor zorgen dat ik dubbele quotes kan invullen zonder dat de boel in de soep loopt?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Met DOM werken ;)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function createHiddenInput ( name, value ) {
   var ret = document.createElement ( 'input' );
   ret.setAttribute ( 'type', 'hidden' );
   ret.setAttribute ( 'name', name );
   ret.setAttribute ( 'value', value );
   return ret;
}

var form = document.createElement ( 'form' );
form.appendChild ( createHiddenInput ( 'added', 'yup' ) );
form.appendChild ( createHiddenInput ( 'ART_NAME', rValue[0] ) );
// etcetera

form.setAttribute ( 'method', 'post' );
form.setAttribute ( 'action', 'content.php' );
form.submit ();


iets van die strekking. All'n'all: document.write is evil :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Tnx voor je reply drm, Zoals de code nu is wil het formuliertje nog niet helemaal submiten bij mij, maar ik zal wel ffkes wat tuts zoeken over het DOM, en die even doorlopen, want ik moet toch maar eens van dat ouderwetsche gejavascript af. En aangezien ik nog niet zo bijster goed in javascript ben, kan ik dit gelijk weer een beetje (bij) leren... :D

iig Tnx :Y)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

JavaScript:
1
var a = new Array();

let op de ()

offtopic: een replace zou toch wel moeten lukken lijkt me (maar document.write is inderdaad vies, dus luister liever naar drm):

JavaScript:
1
2
3
var s = 'een string met "quotes"';
s = s.replace(/"/g, '&quot;');
alert(s);

[ Voor 5% gewijzigd door crisp op 18-02-2004 23:03 ]

Intentionally left blank


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

hioxz:
Tnx voor je reply drm, Zoals de code nu is wil het formuliertje nog niet helemaal submiten bij mij, maar ik zal wel ffkes wat tuts zoeken over het DOM, en die even doorlopen, want ik moet toch maar eens van dat ouderwetsche gejavascript af.
't Kan zijn dat 't alleen werkt als je de formnode eerst nog aan een document hangt (omdat anders niet duidelijk zou kunnen zijn welk window de resultaten zou moeten bevatten).
code:
1
2
document.body.appendChild ( form );
form.submit ();
Maar goed, dat moet je inderdaad maar ff uitzoeken :)
En aangezien ik nog niet zo bijster goed in javascript ben, kan ik dit gelijk weer een beetje (bij) leren... :D
Bijkomend voordeel is dat DOM in heel veel andere toepassingen ook gewoon gebruikt wordt. Je kunt het bijvoorbeeld in Java servlets ook heel goed gebruiken i.c.m. xml en xslt. 't Is meer een toepassing van een bepaalde techniek die ook door javascript ondersteund wordt. De DOM specificatie zelf vind je overigens gewoon terug op http://www.w3.org/TR/

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Tnx guys, ben nu alweer een stuk wijzer.
Zal vanmiddag mn code even wat aanpassen (zit nu op werk),

Daarnaast lijkt het me verdraaid handig om wat meer van dat DOM te weten, dus zal daar dus ook nog ff naar kijken.. :D (misschien ook ff een irl boek ervan halen oid)

[ Voor 10% gewijzigd door Verwijderd op 19-02-2004 08:16 ]

Pagina: 1