stripslashes

Status
Niet open voor verdere reacties.

star3200

Gebruiker
Lid geworden
5 apr 2001
Berichten
409
Ik heb een simpel formier waarbij je een naam ingeeft, die dan gezocht wordt in een sql-databank, en dan op zijn beurt de juiste namen eruit haalt en toont.
De bedoeling is dat die naam dan kan worden gekozen door op "ok" te drukken achter de naam (een voorbeeldje zit in bijlage).

Nu, dit werkt momenteel wel, maar als ik een naam aanduid waarin een accent ( ' ) staat dan gebeurd er niets wanneer ik op de knop "ok" druk.

Hieronder is een stukje javascript dat zich in mijn php-bestand bevind om de namen aan te kunnen duiden.

<script type="text/javascript">
document.forms[0].elements.zoeken.focus();

function gebruik(naam,id){
<? echo stripslashes($_GET["naam"]); ?> = naam;

<? echo stripslashes($_GET["id"]); ?> = id;
window.opener.eigenaarid = id
window.opener.eigenaarnaam = naam
window.close();
}
</script>


PS: sorry als dit eigenlijk bij PHP thuishoort, ik wist 't niet zo goed.
 

Bijlagen

  • zoeken.JPG
    zoeken.JPG
    7,2 KB · Weergaven: 40
Hoe roep je het zoeken aan?

In die functie kun je mischien iets zetten als:
Code:
document.forms[0].zoeken.value = document.forms[0].zoeken.value.replace(/'/g,'\\\'');

Dat vervangt elke ' in het zoeken-veld door \' :)


Vr.Gr. Egel.
 
Dit hoort dan eigenlijk meer bij php thuis denk ik, maar dit is het hele formulier:

<form name="zoeken" action="?actie=zoeken&amp;id=<? echo stripslashes($_GET["id"]); ?>&amp;naam=<? echo stripslashes($_GET["naam"]); ?>" method="post">
<table style="margin:15px;" class="lijstTabel">
<tr>
<td colspan="4"><h2>Zoek eigenaar</h2></td>
</tr>
<tr>
<tr><td colspan="4"><input name="zoeken" value="<? echo $_POST["zoeken"]; ?>" type="text"/>&nbsp;&nbsp;<input type="submit" value="zoeken" /><br/><br/></td>
</tr>
<?
if(isset($_GET["actie"]) && $_POST["zoeken"]!=""){
$sql = "SELECT leden.id,concat(leden.voornaam, ' ',leden.achternaam) as lidnaam,leden.geboortedatum,afdelingenWerkgroepen.naam as afdeling FROM leden LEFT JOIN afdelingenWerkgroepen ON afdelingenWerkgroepen.id = leden.afdeling WHERE concat(leden.voornaam,' ',leden.achternaam) like '%".$_POST["zoeken"]."%' limit 20";
$rsleden = mysql_query($sql);
if(mysql_num_rows($rsleden) == 0){
echo '<tr><td colspan="4"><i>geen leden gevonden die beantwoorden aan *'.$_POST["zoeken"].'*</i></td></tr>';
}else{
echo '<tr><th>naam</th><th>afdeling</th><th>geboren</th><th></th></tr>';
while($temp = mysql_fetch_assoc($rsleden)){
echo '<tr><td>'.$temp["lidnaam"]. '</td><td>'.$temp["afdeling"]. '</td><td>'.datum($temp["geboortedatum"]). '</td><td><input type="button" value="ok" onclick="gebruik(\''.$temp["lidnaam"].'\',\''.$temp["id"].'\');"></td></tr>';
}
if(mysql_num_rows($rsleden) ==20){
echo '<tr><td colspan="4" align="center"><hr/><i>er worden maximum 20 resultaten getoond</i></td></tr>';
}
}
}else{
echo '<tr><td colspan="4" ><i>Typ de naam van het lid, of een deel ervan, en klik op zoeken. Klik vervolgens op de "ok".</i></td></tr>';
}
?>
</table>
</form>


<?
}else{
echo "je bent niet (meer) ingelogd.";
}
?>
<script type="text/javascript">
document.forms[0].elements.zoeken.focus();

function gebruik(naam,id){
window.opener.eigenaar(naam,id);
window.close();
}
</script>
 
Probeer het eens zo:
Code:
<script type="text/javascript">
document.forms[0].elements.zoeken.focus();

function gebruik(naam,id) {
 naam = naam.replace(/'/g,'\\\'');
 window.opener.eigenaar(naam,id);
 window.close();
 };
</script>
dan wordt elke ' in de naam vervangen door \' voordat de functie eigenaar() (in de pagina die deze pagina geopent heeft) wordt aangeroepen. :)


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan