combineren in form

Status
Niet open voor verdere reacties.

mvraven

Gebruiker
Lid geworden
16 jul 2009
Berichten
48
Ik ben een formulier aan het maken met een input veld waarachter een optie veld staat. Deze 2 velden hebben samen 1 naam.
Hoe kan ik deze combineren zodat ze samen dezelfde naam hebben die uit de database gehaald wordt....

Ik heb deze 2 regels die gecombineerd moeten worden:

<form method="post" name="bestelstatus" action="searchbynr.php" <input style="width: 130px; border: 1px solid #337860;" type="text" name="factuurnummer" maxlength="80"> <input type="submit"name="submit" value="Zoek!"></form>
en
<select><option>/74</option><option>/133</option></select>

Achter het input veld moet dus de optie veld komen en samen heten ze factuurnummer. Als ik ze achter elkaar zet dan werkt het niet want dan wordt de optie veld niet gezien als dezelfde naam.....

Thnx!
 
Je kan ze niet allebei dezelfde "name" geven. PHP zal in dat geval maar een veld met die naam kennen. Het makkelijkste is om ze een verschillende naam te geven:
HTML:
<form method="post" name="bestelstatus" action="searchbynr.php">
<input style="width: 130px; border: 1px solid #337860;" type="text" name="factuurnummer1" maxlength="80">
<select name="factuurnummer2">
<option>/74</option>
<option>/133</option>
</select>
<input type="submit"name="submit" value="Zoek!">
</form>
Dit kan je dan in het PHP-script dat het formulier verwerkt (uiteraard na de nodige controles i.v.m. veiligheid) combineren:
PHP:
$factuurnummer = $_POST['factuurnummer1'] . $_POST['factuurnummer2'];
 
Laatst bewerkt:
Ik heb de 2 velden nu allebei hun eigen naam gegeven. Nu wil ik dus dat deze 2 namen samen de naam factuurnummer uit de database halen. Ik heb daarvoor dus de volgende code gebruikt:

PHP:
$query 	=  "SELECT * FROM orders WHERE factuurnummer='$_POST[bonnummer]'.'$_POST[filnr]'";
$result	=  mysql_query($query)
			or die ("Query kon niet worden uitgevoerd");

Maar krijg dus nu steeds de foutmelding dat de query niet uitgevoerd kon worden.

Wat klopt er niet?
 
Je hebt teveel haakjes en je string klopt niet.

Dit moet de query zeggen:

[sql]
SELECT * FROM orders WHERE factuurnummer='factuur1factuur2'
[/sql]

Die heeft namelijk helemaal geen boodschap aan waar jij "factuur1factuur2" vandaan haalt, dus daar hoeven geen extra haakjes.

Verder kan PHP niet omgaan met arrays in strings, dus je moet even je aanhalingstekens aanpassen:
PHP:
$query = "SELECT * FROM orders WHERE factuurnummer='" . $_POST[bonnummer] . $_POST[filnr] . "'";

Probeer dat eens? :)
 
Ja dit is precies wat ik hebben wou.
Het werkt.

Thnx man!:thumb:
 
Graag gedaan :)

Nog even een sidenoot; tenzij je bonnummer en filnr gedefineerd hebt als constantes moet je er wel nog aanhalingstekens omzetten, zie dat ik dat zelf ook niet heb.
Anders krijg je warnings van PHP (die je mogelijk onderdrukt, maar das eigenlijk niet correct)

PHP:
$_POST['filnr'];
 
Nog 1 ding: Hoe verander ik deze nog:

PHP:
("UPDATE orders SET wijzigdatum = '$currentdate', factuurnummer = '{$_POST['factuurnummer']}',

en deze:

PHP:
mysql_query("INSERT INTO orders VALUES ('', '$currentdate', '$currentdate', '{$_POST['factuurnummer']}',

Thnx!
 
PHP:
("UPDATE orders SET wijzigdatum = '" . $currentdate . "', factuurnummer = '" . $_POST['factuurnummer'] . "' ") ;

En probeer dan eens op basis van deze, die onderste van je te wijzigen;)
 
Laatst bewerkt:
Het werkt nu zoals ik het graag hebben wil. Wordt helemaal gek van die ' en " en dan weer,
Bedankt voor je hulp!

Grtz! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan