kiezen welk veld wordt opgeslagen in de database
Hello all,
Ik heb eeb formulier gemaakt waar men via een dropdown merken kan selecteren. Het kan gebeuren dat er een merk niet tussen staat en dus heb ik een veld er naast staan waar ze het merk kunnen intypen.
Nu vraag ik mij af hoe ik kan zorgen dat het script weet welk veld gebruikt wordt om het merk in de database op te slaan. Als men een merk uit de dropdown gebruikt, dan wordt deze gebruikt en als men het veld ernaast gebruikt, dan wordt deze gebruikt.
Ik heb één kolom in de database, genaamd 'merk' en daar wil ik dus het desbetreffende merk in opgeslagen hebben.
Seb.
Ik heb eeb formulier gemaakt waar men via een dropdown merken kan selecteren. Het kan gebeuren dat er een merk niet tussen staat en dus heb ik een veld er naast staan waar ze het merk kunnen intypen.
Nu vraag ik mij af hoe ik kan zorgen dat het script weet welk veld gebruikt wordt om het merk in de database op te slaan. Als men een merk uit de dropdown gebruikt, dan wordt deze gebruikt en als men het veld ernaast gebruikt, dan wordt deze gebruikt.
Ik heb één kolom in de database, genaamd 'merk' en daar wil ik dus het desbetreffende merk in opgeslagen hebben.
Seb.
Sowieso heb je lijkt me een optie 'overig' in je dropdown box staan? In de controle van je formulier kun je kijken of die optie geselecteerd is en als dat het geval is de waarde uit het textveld ernaast gebruiken...
Iets in de trend van:
Iets in de trend van:
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
<select name="merk_selectie">
bla bla
</select>
<input type="text" name="merk_handmatig" />
en dan met PHP iets in de strekking van;
if (strlen($_POST['merk_handmatig'])) {
$merk = 'blar blar';
} else {
$merk = 'jaddiejaddie';
}
$query = sprintf("select * from iets where merk like '%%%s%%'",mysql_real_escape_string($merk));
bla bla
</select>
<input type="text" name="merk_handmatig" />
en dan met PHP iets in de strekking van;
if (strlen($_POST['merk_handmatig'])) {
$merk = 'blar blar';
} else {
$merk = 'jaddiejaddie';
}
$query = sprintf("select * from iets where merk like '%%%s%%'",mysql_real_escape_string($merk));
Die richting
@Twan: een paar opmerkingen over je code. Allereerst is het gebruik van strlen() hier niet echt netjes. Als je wilt weten of een variabele leeg is of niet, gebruik dan liever de functie die daarvoor bedoeld is: empty().
Verder is in jouw geval de dropdown box nutteloos zodra er ook maar iets in het textveld ingevuld is, ook als er wel een keuze is gemaakt met die dropdown box. Ik zou zelf kiezen voor een optie 'overig' en zodra die geselecteerd is pas kijken naar de waarde in het text veld.
Uiteraard in dat laatste geval niet vergeten te controleren of het text veld wel correct ingevuld is ;)
Verder is in jouw geval de dropdown box nutteloos zodra er ook maar iets in het textveld ingevuld is, ook als er wel een keuze is gemaakt met die dropdown box. Ik zou zelf kiezen voor een optie 'overig' en zodra die geselecteerd is pas kijken naar de waarde in het text veld.
Uiteraard in dat laatste geval niet vergeten te controleren of het text veld wel correct ingevuld is ;)
@Blanche: empty() is een raar ding, 0 is schijnbaar ook een lege string... Wanneer je op een lege string vergelijkt, kijk dan naar ''. Dát is een lege string.
Hmm, true. Maar wie vult er dan ook 0 als merk in? :P
Maar goed, controleer inderdaad dus liever op een lege string.
Maar goed, controleer inderdaad dus liever op een lege string.
'Blanche:
Hmm, true. Maar wie vult er dan ook 0 als merk in? :P
Maar goed, controleer inderdaad dus liever op een lege string.
Maar goed, controleer inderdaad dus liever op een lege string.
Je hebt zo van die bezoekers die vullen de raarste dingen in. Ook één op mijn site ging porno plaatjes uploaden, ze weten toch dat ik die met één druk op een knop kan verwijderen, waarom doen ze het dan?




