Button doorlinken naar andere pagina werkt niet goed
Het script wil de ingevoerde tekst niet doorsturen, naar zoekennn.php
voorpagina (2buttons maar zijn even voor test):
Code (php)
1
2
3
4
5
2
3
4
5
<form name="zoekquery" id="zoekquery" action="zoekennn" method="get" target="bottom">
<td><input name="zoekquery" class="textfield" type="text" id="zoek" value="$zoek" style="width:125px;" /></td>
<td><input type="image" style="float :inherit ;" img src="img/button-search-small.png" title="Zoek" value="Zoekennn" /></td>
<td><input type="hidden" name="page" value="$zoek" /></td><td><input type="submit" title="Zoek" value="Zoek" /> </td>
</form>
<td><input name="zoekquery" class="textfield" type="text" id="zoek" value="$zoek" style="width:125px;" /></td>
<td><input type="image" style="float :inherit ;" img src="img/button-search-small.png" title="Zoek" value="Zoekennn" /></td>
<td><input type="hidden" name="page" value="$zoek" /></td><td><input type="submit" title="Zoek" value="Zoek" /> </td>
</form>
zoekennn.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
$zoeken .= "
<h3>Producten zoeken</h3>
<form name=\"zoekquery\" id=\"zoekquery\" action=\"zoekennn\" method=\"post\">
<table width=\"200\" border=\"0\">
<tr>
<td><input name=\"zoek\" class=\"textfield\" type=\"text\" id=\"zoek\" value=\"$zoek\" style=\"width:150px; height:27px;\" /></td>
<td><input type=\"image\" style=\"float :inherit ;\" img src=\"img/button-search.png\" title=\"Zoek\" value=\"Zoek\" /></td>
</tr>
</table>
</form>
";
<h3>Producten zoeken</h3>
<form name=\"zoekquery\" id=\"zoekquery\" action=\"zoekennn\" method=\"post\">
<table width=\"200\" border=\"0\">
<tr>
<td><input name=\"zoek\" class=\"textfield\" type=\"text\" id=\"zoek\" value=\"$zoek\" style=\"width:150px; height:27px;\" /></td>
<td><input type=\"image\" style=\"float :inherit ;\" img src=\"img/button-search.png\" title=\"Zoek\" value=\"Zoek\" /></td>
</tr>
</table>
</form>
";
<form name="zoekquery" id="zoekquery" action="pad/naar/zoekenn.php" method="post" target="bottom">
En gebruik ook gelijk POST als method
Toevoeging op 07/06/2013 12:32:09:
Maar waarom heb je ook een zoek formulier in zoekennn staan? Dat gaat zo natuurlijk nooit werken
Er staat ook standaard '$zoek' in het invoerveld, maar die waarde moet die doorsturen naar zoekennn.php
Code (php)
1
2
3
4
5
2
3
4
5
<form name="zoekquery" id="zoekquery" action="zoekennn.php" method="post" target="bottom">
<td><input name="zoekquery" class="textfield" type="text" id="zoek" value="$zoek" style="width:125px;" /></td>
<td><input type="image" style="float :inherit ;" img src="img/button-search-small.png" title="Zoek" value="Zoekennn" /></td>
<td><input type="hidden" name="page" value="$zoek" /></td><td><input type="submit" title="Zoek" value="Zoek" /> </td>
</form>
<td><input name="zoekquery" class="textfield" type="text" id="zoek" value="$zoek" style="width:125px;" /></td>
<td><input type="image" style="float :inherit ;" img src="img/button-search-small.png" title="Zoek" value="Zoekennn" /></td>
<td><input type="hidden" name="page" value="$zoek" /></td><td><input type="submit" title="Zoek" value="Zoek" /> </td>
</form>
Dat doe je door de $_POST['name'] te gebruiken, die bevatten de gegevens van je zoek formulier.
Dus in jou geval is dat $_POST['zoekquery'] en $_POST['page']
Je middelste input (de afbeelding) komt nooit aan, want hier heb je geen name="" atribuut in zitten.
Gewijzigd op 07/06/2013 12:42:20 door Chris PHP
Maar ik moet dus $_POST['zoekquery'] en $_POST['page'] in zoekennn.php zien te plaatsen?
Je kunt ze op het scherm afdrukken door er echo voor te zetten, en kijken of ze de waardes bevatten die je verwacht. Daarna zul je ze moeten gebruiken in een query om je gegevens uit de database te halen.
Tevens in hidden veld heb je bij value $zoek staan, dit zal natuurlijk nooit werken. Daar komt letterlijk $zoek te staan en niet wat je in die variabel in php hebt gezet.
Als je php variabelen in HTML wil gebruiken doe je dat zo, Dus je opent php dan gebruik je echo $variabel; om de inhoud van je $variabel op het scherm af te drukken, en vervolgens sluit je php weer af.
Gewijzigd op 07/06/2013 13:02:00 door Chris PHP
Bedankt! ik heb het werkend gekregen.
Als je een query hebt zorg wel dat je alles juist escaped met mysql_real_escape_string(), zodat je niet gevoelig bent voor SQL Injection!
Dus zo in je query zetten mysql_real_escape_string($_POST['zoekquery'])
Want als iemand 1 karakter invult komt er een uitput van 200+ records...
dat lijkt mij niet handig voor de prestaties?
Als je dat wil doen voordat het zoek formulier verzonden wordt, is volgens mij het makkelijkst om dit met JavaScript en/of JQuery. Als je het naderhand wil oplossen kun je dat wel opvangen met php, echter is dan al wel het formulier verzonden en zul je ze terug moeten sturen naar de zoek pagina.
Code (php)
1
2
3
4
5
2
3
4
5
$zoek = $_POST['zoek'];
Dat zou dus het volgende moeten worden?
$zoek = mysql_real_escape_string($_POST['zoek']);
Dat zou dus het volgende moeten worden?
$zoek = mysql_real_escape_string($_POST['zoek']);
ik heb het wel in de sql query geplaatst:
Zo dus:
Variabelen nemen recources in beslag en kan je site wanneer het groter wordt dus vertragen, als je het kan zonder het eerst in een variabel te zetten is het het beste om daarvoor te gaan.
Als laatst wou ik de laatste 100 zoekterm opslaan in de database, maar hoe zorg ik er voor dat de rij 101 automatisch verwijderd wordt uit de database?