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.
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:
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;
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?
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.
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?