Meerdere rijen ineens in een tabel
Ik heb een invulscherm met een tabel waarin staan
een artikelnummer, de maat en dan als invulveld de prijs.
Dat kunnen meerdere rijen zijn.
Het zijn bepaalde artikelen waarbij meerdere maten bestaan en waarbij de prijs daarvan nog moet worden ingevoerd.
Nu wil ik al die rijen met een submit ineens in mijn database verwerken.
Hoe doe ik dit handig?
Dit heb ik nu, maar daar krijg ik een fout mee ws. omdat ik geen array gebruik?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if (isset($_POST['verzondenprijs'])){
foreach ($_POST['prijs'] as $prijs) {
$product = $_GET['artikel'];
$query = "UPDATE maatprijs
SET prijs='$prijs'
WHERE product = '$product'";
$result = mysql_query($query);
if (mysql_affected_rows() == 1) {
continue;
} else {
$foutbericht = '<p>Dat ging niet goed</p>';
break;
}
}
}
?>
if (isset($_POST['verzondenprijs'])){
foreach ($_POST['prijs'] as $prijs) {
$product = $_GET['artikel'];
$query = "UPDATE maatprijs
SET prijs='$prijs'
WHERE product = '$product'";
$result = mysql_query($query);
if (mysql_affected_rows() == 1) {
continue;
} else {
$foutbericht = '<p>Dat ging niet goed</p>';
break;
}
}
}
?>
De foutmelding is:
Warning: Invalid argument supplied for foreach() in
Ik ga er vanuit dat het komt doordat ik er geen array van gemaakt heb. Het probleem is dat ik geen idee heb hoe ik dat doe.
Dit is de code die ik gebruik om de tabel op te bouwen:
<form action="" method="POST">
Code (php)
1
2
3
4
2
3
4
<?php
$product = $_GET['artikel'];
display_db_table_select('maatprijs', $product);
?>
$product = $_GET['artikel'];
display_db_table_select('maatprijs', $product);
?>
<input type="hidden" name="verzondenprijs" value="1" />
<p>
<input type="submit" name="Submit" value="Invoeren">
</p>
</form>
En dit is de functie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
function display_db_table_select($tablename, $artnr)
{
$result_id = mysql_query("SELECT product, maat FROM $tablename WHERE product=$artnr") or die (mysql_error()) ;
$column_count = mysql_num_fields($result_id);
print("<H1>Prijzen</H1>\n");
print("<TABLE BORDER=0>\n");
while ($row = mysql_fetch_row($result_id))
{
print("<TR ALIGN=LEFT VALIGN=TOP>");
for ($column_num = 0;
$column_num < $column_count;
$column_num++)
print("<TD>$row[$column_num]</TD>\n");
print("<TD><p>Prijs<br/>
<input type=\"text\" name=\"prijs\"
size=\"20\" maxlength=\"25\">
</p></TD>");
print("</TR>\n");
}
print("</TABLE>\n");
}
?>
function display_db_table_select($tablename, $artnr)
{
$result_id = mysql_query("SELECT product, maat FROM $tablename WHERE product=$artnr") or die (mysql_error()) ;
$column_count = mysql_num_fields($result_id);
print("<H1>Prijzen</H1>\n");
print("<TABLE BORDER=0>\n");
while ($row = mysql_fetch_row($result_id))
{
print("<TR ALIGN=LEFT VALIGN=TOP>");
for ($column_num = 0;
$column_num < $column_count;
$column_num++)
print("<TD>$row[$column_num]</TD>\n");
print("<TD><p>Prijs<br/>
<input type=\"text\" name=\"prijs\"
size=\"20\" maxlength=\"25\">
</p></TD>");
print("</TR>\n");
}
print("</TABLE>\n");
}
?>
hoe kan als je op de verzendknop van een formuliertje met checkboxen klikt,
die waarden van de checkboxen in een array zetten?
<form method="post" action="">
<input type=checkbox name=voorbeeld[] value='voorbeeld1'> voorbeeld 1<br>
<input type=checkbox name=voorbeeld[] value='voorbeeld2'> voorbeeld 2<br>
<input type=checkbox name=voorbeeld[] value='voorbeeld3'> voorbeeld 3<br>
<input type="submit" value="voorbeeld" name="voorbeeld">
</form>
Code (php)
of
m'n 'inputs' staan in een while lus.. niet in een gewoon rijtje van een stuk of 19 <input>'s
dan doe je zo: