php formulier

Status
Niet open voor verdere reacties.

willem008

Gebruiker
Lid geworden
28 sep 2007
Berichten
792
Goede dag

Ik gebruik in mijn database die zoekformulier

<?
echo "\n




<FORM METHOD=\"POST\" ACTION=\"zoek.php\">
<br>Zoeken op term:
<input type=\"text\" name=\"zoekterm\" size=\"20\">Bijv: Way of Lim<br>
<input type=\"submit\" name=\"submit\" value=\"Zoeken!\">

</form>
";


?>
Ik heb nu aangegeven hoe ze kunnen zoeken , met de tekst Bijv: way of lim
die staat nu buiten het zoekvenster ,
wat ik zou willen is dat de tekst in het zoekvenster komt te staan ,heb al van alles geprobeert maar lukt nog niet.
 
Zo iets?

PHP:
<?
echo "\n




<FORM METHOD=\"POST\" ACTION=\"zoek.php\">
<br>Zoeken op term:
<input type=\"text\" name=\"zoekterm\"  value=\"Bijv: Way of Lim\" size=\"20\"><br>
<input type=\"submit\" name=\"submit\" value=\"Zoeken!\">

</form>
";


?>
 
Ok dit is wel goed ,
maar dan moeten ze eerst de tekst uit het zoekvenster verwijderenen dan een nieuwe invoeren.

zou het liever zo hebben dat als ze op het zoekvenster klikken dat de voorbeeld tekst verdwijnd
 
zo?

PHP:
<?
echo "\n




<FORM METHOD=\"POST\" ACTION=\"zoek.php\">
<br>Zoeken op term:
<input type=\"text\" name=\"zoekterm\"  value=\"Bijv: Way of Lim\" size=\"20\" onClick="this.value=''"><br>
<input type=\"submit\" name=\"submit\" value=\"Zoeken!\">

</form>
";


?>
 
zou je daar niet onFocus en onBlur kunnen gebruiken?

of anders een functie van maken, kun je hem ook bij andere text velden gebruiken.
 
ik zie net dat er ook een klein foutje in zit het moet zijn:

PHP:
<?
echo "\n
 
 
 
 
<FORM METHOD=\"POST\" ACTION=\"zoek.php\">
<br>Zoeken op term:
<input type=\"text\" name=\"zoekterm\"  value=\"Bijv: Way of Lim\" size=\"20\" onClick=\"this.value=''\"><br>
<input type=\"submit\" name=\"submit\" value=\"Zoeken!\">
 
</form>
";
 
 
?>
 
Ok werkt super zo
bedankt voor de moeite.

dan nog een klein vraagje,
Nu zo ik ook eigenlijk willen ,maar ben hier al meer mee bezig
geweest en toen lukte het maar niet.

dat is het volgende
Als ik bijv in het zoekvenster way intypt zoek hij alle paarden waar way in voor komt,
ik zo dat eigelijk willen dat way (in dit geval) vet werdt gedrukt.

ik gebruik dit script in de verwerkpagina zoek.php

<?





//-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
if (!@mysql_select_db("kortebaan", @mysql_connect("14.261.17.35", "kortebaan","xxxxxxx")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}

//-- $HTTP_POST_VARS[zoekterm] is de naam van het zoekveld in het formulier wat we
//-- hebben gemaakt in het vorige 'hoofdstuk'. Dit is dus de SQL code:
$sql = "SELECT * from paard WHERE naam LIKE '%$HTTP_POST_VARS[zoekterm]%'";

//-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
//-- kijken of er een resultaat is
$res = mysql_query($sql);

//-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
if (mysql_num_rows($res) >= 1)
{
//-- er is een resultaat gevonden, toon de resultaten via een while () loop
while ($row = mysql_fetch_array($res))
{
echo " <br /><br />Naam&nbsp&nbsp<strong>" . $row["naam"] . "</strong><br />Geboren&nbsp&nbsp " . $row["geboren"] . "<br />Geslacht&nbsp&nbsp " . $row["geslacht"] . "<br />Kleur&nbsp&nbsp " . $row["kleur"] . " <br />Nationaliteit&nbsp&nbsp " . $row["nationaliteit"] . "<br />Fokker&nbsp&nbsp " . $row["fokker"] . " \n";


}

}
//-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
else
{
echo "<p>Er is niets gevonden op u zoekterm:<b> $HTTP_POST_VARS[zoekterm]</b></p>";



}
?>
 
Laatst bewerkt:
jij bedoelt dus dat in je resultaten bij de naam het zoekwoord dik word gedrukt?

dus als je zoekwoord is way

en er in je database een naam is die is: testwaytest

dat het er zo uit komt te zien:

testwaytest
 
Zo te zien wordt op dit moment de hele naam al dikgedrukt. Je kunt delen van een woord dikgedrukt maken met string_replace, op deze manier:

PHP:
$dikgedrukt = str_replace( $zoekwoord, "<strong>" . $zoekwoord . "</strong>", $begin_tekst );

Maar dat werkt dus alleen als de tekst niet al dikgedrukt is ;P
 
Ok
Het gaat hier om $row naam
Als ik <strong>weg haal en dan jou code in voer zou hij het dan moeten doen.


Wil namelijk nog niet erg Al twee dagen bezig
 
Als je mijn code copy-pasta't in je script dan werkt het niet. Het is wel de bedoeling dat je snapt wat je aan het doen bent ;) Mijn code is een voorbeeld van hoe je het doet, je moet het wel zelf aanpassen voor je eigen script.
 
Overgens zijn er veel 'elegantere' oplossingen voor het 1e probleem. Tegenwoordig is er een zogenaamde 'placeholder' welke zelfs native wordt ondersteund door de nieuwere browsers:

HTML:
<input type='text' placeholder='Bijv. Way of Lim' />

voor oudere browsers is er fallback mogelijk dmv. Javascript, zie bijvoorbeeld hier.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan