Page 1 of 1

PHP Order Form

Posted: Tue Nov 24, 2009 7:27 am
by Eddies
Greetings people,

I have yet another problem with my current project.

I am creating a point of sale system and I need help with the "Add sale" module of the system and I was hoping for your advice and guide on how to do this.

Basically what I want for this is for users to select the items from the item list in the database in the "newsale.php" page. All the items are select from the database in the "items" table.

newsale.php

Description Category Price Quantity
Item A Cup $1.20 [___3___]
Item B Plate $2.00 [_______]
Item C Bowl $1.50 [___2___]
(Add items)

As of above, User will input the quantity for the items to be purchase from this form and by clicking "Add Items", it will call forth the next page, "processpo.php" which it will identify the id sent and display a similar form as above. The above process is similar to the add to cart function where "processpo.php" is similar to the shopping cart.

At the "processpo.php" page, users will confirm the quantity and details before invoice is submitted to database and print.

Description Category Price Quantity Total
Item A Cup $1.20 [___3___] $3.60
Item C Bowl $1.50 [___2___] $3.00
(Update Items)
(Generate Invoice)

Do I need session for this?

Once again, thanks for the help in advance.

Re: PHP Order Form

Posted: Tue Nov 24, 2009 8:09 am
by superdezign
For the initial sending of the data, you need to make use of GET or POST requests. For the persistence of the data across multiple page requests, you will need to use a session.

Re: PHP Order Form

Posted: Wed Nov 25, 2009 8:37 pm
by Eddies
Hello again,

from all the advices I got so far, I had come out with this but I got this error and I do not know what is the problem. Was wondering if you all could help.

Warning: Invalid argument supplied for foreach() in /home/gwenip/domains/gweniph.com/public_html/ebpos/processpo.php on line 55

Code: Select all

 
<?php
foreach ($_POST['id'] as $itemId => $itemID) {
    $quantity = trim($_POST['quantity'][$itemId]);
    $id = $_POST['id'][$itemId];
    
    if(is_numeric($quantity) == 1 && $quantity >= 1){
    
        $sql = 'SELECT description, category, unit_quantity, uom, van_price FROM items WHERE id = ' . $id;
        $result = $db->query($sql);
        
        while ($row = $result->fetch())
            {
                $description = $row['description'];
                $category = $row['category'];
                $unit_quantity = $row['unit_quantity'];
                $uom = $row['uom'];
                $van_price = $row['van_price'];
            }
            
        $output[] = '<form action="generateinvoice.php" method=post>';  
        $output[] = '<input type="hidden" name="id[' . $id. ']" value="' . $id . '">';
        $output[] = '<table width="920" border="0" align="center" cellpadding="0" cellspacing="0">';
        $output[] = '  <tr>';
        $output[] = '    <td width="920"><table width="920" border="0" cellspacing="0" cellpadding="0">';
        if($trbgcolor != "#FFFFFF"){ $trbgcolor = "#FFFFFF"; }else{ $trbgcolor = "#7EBF41"; }
        $output[] = '      <tr bgcolor="'.$trbgcolor.'">';
        $output[] = '        <td width="45%" class="text"><div align="center">'.$description.'</div></td>';
        $output[] = '        <td width="15%" class="tex"><div align="center"><div align="center">'.$category.'</div></td>';
        $output[] = '        <td width="10%" class="text"><div align="center"><div align="center">'.$unit_quantity.'</div></td>';
        $output[] = '        <td width="10%" class="text"><div align="center"><div align="center">'.$uom.'</div></td>';
        $output[] = '        <td width="10%" class="text"><div align="center"><div align="center">'.number_format($van_price,2).'</div></td>';
        $output[] = '       <td width="10%" class="textheading"><div align="center"><input type=text size="5" name="quantity[' . $row['id'] . ']" value="'.$quantity.'" /></div></td>';
        $output[] = '      </tr>';
        $output[] = '    </table></td>';
        $output[] = '  </tr>';
        $output[] = '</table>';
        
        echo join('',$output);
    }
}
 
    $output2[] = '<table width="920" border="0" align="center" cellpadding="0" cellspacing="0">';
    $output2[] = '  <tr>';
    $output2[] = '    <td><table width="920" border="0" cellspacing="0" cellpadding="0">';
    $output2[] = '      <tr>';
    $output2[] = '        <td width="720"></td>';
    $output2[] = '        <td width="200"><div align="right"><input type="submit" name="addtopo" value="Generate Invoice"></div></td>';
    $output2[] = '      </tr>';
    $output2[] = '    </table></td>';
    $output2[] = '  </tr>';
    $output2[] = '</table>';
    $output2[] = '</form>';
    
    echo join('',$output2);
 
?>
 

Re: PHP Order Form

Posted: Thu Nov 26, 2009 3:11 pm
by superdezign
Foreach only accepts traversable objects, like arrays. $_POST['id'] is probably not an array.