Meerdere rijen ineens in een tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan Boerema

Johan Boerema

22/08/2006 09:46:00
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
        }
    }
}
    

?>


De foutmelding is:

Warning: Invalid argument supplied for foreach() in
 
PHP hulp

PHP hulp

26/11/2024 05:01:36
 
Johan Boerema

Johan Boerema

22/08/2006 10:15:00
Quote Anchor link
Even een aanvulling.
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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $php_self?>
" method="POST">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
      $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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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");
}


?>
 
Lissy Pixel

Lissy Pixel

22/08/2006 10:59:00
Quote Anchor link
Hier wat uitleg over het gebruik van een array in een formuliertje. Wellicht helpt je dit:

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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
">

<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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{

    $array     = $_POST['voorbeeld'];
    $aantal = count($array);
    $i = 0;
    
    for($i = 0; $i < $aantal; $i++)
    {

        echo $array[$i].'<br>';
    }
}

?>


of

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
foreach($_POST['voorbeeld'] as $nummer)
{

    echo $nummer.'<br>';
}

?>


m'n 'inputs' staan in een while lus.. niet in een gewoon rijtje van een stuk of 19 <input>'s
dan doe je zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
while(jouwvoorwaarde)
{

$i++;

echo "<input type='checkbox' name='voorbeeld[]' value='voorbeeld".$i."'> voorbeeld ".$i."<br>";
}

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.