naykidd Posted July 26, 2010 Share Posted July 26, 2010 Im wondering if anyone could offer a solution, i'm having a nightmare with a submit form. Im trying to make an invoice system, using a 3rd party system that im modifying (Tried to look on their site but they have no help system). I need to add items to the order, AND post them to an sql table whilst automatically working out the VAT + Total cost I then need to be able to add more items, and them also submit to the sql table in another row (using Submit2, its kind of a form within a form) Finally, when i go to submit the final page, the page submits the customers name/invoice/address details etc to another table via $_POST, and then brings it all up on the invoice page (I use WHERE invoiceno="" to bring back all the seperate parts of the order from the database) So far, I can get the different items to come up on the invoice, but they wont store via a $_POST method (I get an error) and if i use anything but a loop, like just a variable, the item does store in the table when i submit it, but it wont remember the item for the invoice page, and the prices all become the same when i add multiple items! I'd love to get some feedback, i've been php coding for a while now, and this is one i'm really struggling with! Theres a config file this code links too, but its not needed to see whats going on so ive left it out! I know the update function won't work at the moment either, but i'm working on that. Thanks, <?php /************************************************************************/ /* PHP InvoiceIt v1.0 */ /* =========================== */ /* */ /* Written by Steve Dawson - http://www.stevedawson.com */ /* Freelance Web Developer - PHP, MySQL, HTML programming */ /* */ /* This program is free software. You can redistribute it and/or modify */ /* but please leave this header intact, thanks */ /************************************************************************/ include "config.php"; require_once("Connections/connection.php"); error_reporting (E_ALL ^ E_NOTICE); error_reporting (E_ALL ^ E_NOTICE); ## The processing function thingy ma jig. function processform() { global $HeaderDistance; global $BorderColour; global $TableBGcolour; global $PageTitle; global $CurrencyUnit; global $InvoiceSignature; global $DisplayVat; global $TaxName; global $VatRate; global $vat_at; global $customer_id; global $customer_address; global $customer_name; global $date; global $order; global $price; global $notes; ?> <HTML> <HEAD> <TITLE>PHP InvoiceIt - Invoice Created</TITLE> <LINK REL="STYLESHEET" HREF="invoice.css"> </HEAD> <BODY> <img src="blank.gif" width="1" height="<?php print $HeaderDistance; ?>"> <DIV align="center"> <?php print "$part"; ?> <TABLE border="0" width="600"> <tr> <TD valign="top" colspan="2"> <table> <tr> <td align="left"> To:<br> <?php print $customer_name; ?><br> <?php print str_replace("\n", "<br>", $customer_address); ?> </td> </tr> <tr> <td align="right"> <b>Date:</b> <?php print "$date"; ?> </td> </tr> <tr> <td align="right"> <b>Ref:</b> <?php print "$customer_id"; ?> </td> </tr> <tr> <td> <br><br><table width="100%" CELLPADDING="2" CELLSPACING="0" border="1" bordercolor="<?PHP print "$BorderColour"; ?>"> <tr bgcolor="<?PHP print "$TableBGcolour"; ?>"> <th>Product</th> <th>Cost</th> <th><?PHP print "$TaxName"; ?></th> <th>Total</th> </tr> <tr> <td><img src="blank.gif" width="450" height="14"></td> <td><img src="blank.gif" width="60" height="14"></td> <td><img src="blank.gif" width="60" height="14"></td> <td><img src="blank.gif" width="60" height="14"></td> </tr> <?php $tot_cost = "0"; $tot_vat = "0"; $tot_price = "0"; for($l=0; $l<sizeof($order); $l++){ if(!strlen($order[$l]) && $l == (sizeof($order)-1)) { continue; } ?> <tr> <td><?php print $order[$l]; ?></td> <td align="right"><?php print "$CurrencyUnit"; ?><?php print number_format($price[$l]/($vat_at+100)*100, 2); ?></td> <td align="right"><?php print "$CurrencyUnit"; ?><?php print number_format($price[$l]-($price[$l]/($vat_at+100)*100), 2); ?></td> <td align="right" width="50"><?php print "$CurrencyUnit"; ?><?php print number_format($price[$l],2); ?></td> </tr> <?php $tot_cost += $price[$l]/($vat_at+100)*100; $tot_vat += $price[$l]-($price[$l]/($vat_at+100)*100); $tot_price += $price[$l]; } ?> <tr> <td colspan="4"><?php if($DisplayVat == "Y") { print "<i>$TaxName charged at a rate of $vat_at%</i>"; } else print "<img src=\"blank.gif\" width=\"1\" height=\"14\">";?></td> </tr> </table> <br> <table align="right" width="0" CELLPADDING="2" CELLSPACING="1" border="1" bordercolor="<?PHP print "$BorderColour"; ?>"> <tr> <td width="60" align="right"><b><?php print "$CurrencyUnit"; ?><?php print number_format($tot_cost,2); ?></b></td> <td align="right" width="60"><b><?php print "$CurrencyUnit"; ?><?php print number_format($tot_vat,2); ?></b></td> <td align="right" width="60"><b><?php print "$CurrencyUnit"; ?><?php print number_format($tot_price,2); ?></b></td> </tr> </table> <br> <br><br><br><?php print tag($notes); ?> <br> <br> <?php print "$InvoiceSignature"; ?> </td> </tr></table></TD></TR></TABLE> </DIV> </BODY> </HTML> <?php } function mainform() { ///////////////////////////////////////////////// variables $customer_id = $_POST['invoice']; $customer_id = $_POST['invoiceno']; $part = $_POST['part']; $tot_cost = $_POST['totcost']; $tot_vat = $_POST['totvat']; $tot_price = $_POST['totprice']; $description = $_POST['description']; $Submit = $_POST['Submit']; $Submit2 = $_POST['Submit2']; ////////////////////////////////////// $query = sprintf("SELECT * FROM invo where ID='$upd'"); $result = @mysql_query($query); //tells the database $rowUpdate = mysql_fetch_array($result); //fetches the result ////////////////////////////////////// /////////////////////////////// The following checks if there is stuff in every field and not in the hidden update field global $HeaderDistance; global $BorderColour; global $TableBGcolour; global $PageTitle; global $CurrencyUnit; global $DisplayVat; global $TaxName; global $VatRate; global $InvoiceSignature; global $n_order; global $n_price; global $vat_at; global $customer_id; global $customer_address; global $customer_name; global $date; global $order; global $price; global $notes; ?> <HTML> <HEAD> <TITLE>PHP InvoiceIt - Create the Invoice</TITLE> <LINK REL="STYLESHEET" HREF="invoice.css"> </HEAD> <BODY><img src="blank.gif" width="1" height="<?php print $HeaderDistance; ?>"> <DIV align="center"> <TABLE WIDTH="90%" BORDER="0" CELLPADDING="2" CELLSPACING="2" ALIGN="CENTER"> <TR> <TD valign="top" colspan="2"><H4 align="center"><?PHP print $PageTitle; ?></H4> <br> <form id="form1" name="form1" method="post"> <table> <tr> <td align="left"> To:<br> <input type="text" name="customer_name" size="38" value="<?php if($customer_name) { print tag($customer_name); } else { print "Insert Customer Name"; } ?>"> <br> <textarea name="customer_address" rows="5" cols="40"><?php if($customer_address) { print $customer_address; } else { print "Insert Customer Address"; } ?></textarea> </td> </tr> <tr> <td align="right"> <b>Date:</b> <input type="text" name="date" size="15" value="<?php if($date){ print tag($date); } else { print date("d/m/Y"); } ?>"> </td> </tr> <tr> <td align="right"> <b>Ref Number:</b> <input type="text" name="customer_id" size="15" value="<?php if($customer_id){ echo $rowUpdate['invoice']; print tag($customer_id); } else { print "Customer Ref"; } ?> "> </td> </tr> <tr> <td> <table width="100%" CELLPADDING="2" CELLSPACING="0" border="1" bordercolor="<?PHP print "$BorderColour"; ?>"> <tr bgcolor="<?PHP print "$TableBGcolour"; ?>"> <th>Product</th> <th>Description</th> <th>Cost</th> <th><?PHP print "$TaxName"; ?></th> <th>Total</th> </tr> <tr> <td><img src="blank.gif" width="400" height="14"></td> <td><img src="blank.gif" width="110" height="14"></td> <td><img src="blank.gif" width="60" height="14"></td> <td><img src="blank.gif" width="60" height="14"></td> <td><img src="blank.gif" width="60" height="14"></td> </tr> <?php $tot_cost = 0; $tot_vat = 0; $tot_price = 0; for($l=0; $l<sizeof($order); $l++){ ?> <input type="hidden" name="order[<?php print $l; ?>]" value="<?php print tag($order[$l]); ?>"> <input type="hidden" name="price[<?php print $l; ?>]" value="<?php print tag($price[$l]); ?>"> <tr> <td><?php print $part; ?></td> <td><?php print $description; ?></td> <td align="right"><?php print "$CurrencyUnit"; ?><?php print number_format($price[$l]/($vat_at+100)*100, 2); ?></td> <td align="right"><?php print "$CurrencyUnit"; ?><?php print number_format($price[$l]-($price[$l]/($vat_at+100)*100),2); ?></td> <td align="right"><?php print "$CurrencyUnit"; ?><?php print number_format($price[$l],2); ?></td> </tr> <?php $tot_cost += $price[$l]/($vat_at+100)*100; $tot_vat += $price[$l]-($price[$l]/($vat_at+100)*100); $tot_price += $price[$l]; $order2 = $order[$l]; $order2 = $_POST['order']; } ?> <form id="form2" name="form2" method="post"> <b>Part:</b> <input type="text" name="part" size="15" value="<?php echo $rowUpdate['part']; ?> "> <input type="text" name="description" size="15" value="<?php echo $rowUpdate['description']; ?> "> <input name="Submit2" type="Submit" value="Submit2" class="button"></p> <?php if($Submit2){ /////////////////////////////////////////////////////// this inserts it $query = sprintf("INSERT INTO invo2 (part, invoiceno, totcost, totvat, description, totprice, order) values ('$part', '$customer_id', '$tot_cost', '$tot_vat', '$description', '$tot_price', '$order2')"); mysql_query($query)or die (mysql_error()); } {} ?> </FORM> <tr> <td> <input type="text" name="order[<?php print sizeof($order); ?>]" size="70"></td> <td align="right"><img src="blank.gif" width="60" height="14"></td> <td align="right"><img src="blank.gif" width="60" height="14"></td> <td align="right"><?php print "$CurrencyUnit"; ?> <input type="text" name="price[<?php print sizeof($price); ?>]" size="5"></td> </tr> <tr> <td colspan=4><?php if($DisplayVat == "Y") { print "<input type=\"hidden\" name=\"vat_at\" value=\"$VatRate\" size=\"4\"> <i>$TaxName charged at a rate of $VatRate%</i>"; } else print "<img src=\"blank.gif\" width=\"1\" height=\"14\">"; ?></td> </tr> </table> <table align="right" width="0" CELLPADDING="2" CELLSPACING="1" border="1" bordercolor="<?PHP print "$BorderColour"; ?>"> <br> <tr> <td width="60" align="right"><b><?php print "$CurrencyUnit"; ?><?php print number_format($tot_cost,2); ?></b></td> <td align="right" width="60"><b><?php print "$CurrencyUnit"; ?><?php print number_format($tot_vat,2); ?></b></td> <td align="right" width="60"><b><?php print "$CurrencyUnit"; ?><?php print number_format($tot_price,2); ?></b></td> </tr> </table><br> <br> <br>Enter any additional notes:<br> <textarea name="notes" cols="100%" rows="5"><?php print "$notes"; ?></textarea> <br> <br><br> <?php print "$InvoiceSignature"; ?><br></td> </tr> <tr> <td><br> <br> <p align="center"><input name="action" type="submit" value="Update Invoice" class="button"> <input name="Submit" type="Submit" value="Submit" class="button"></p></td> </tr></table> </FORM> </TD> </TR> </TABLE> </DIV> </BODY> </HTML> <?php } if($Submit == "Submit"){ processform(); /////////////////////////////////////////////////////// this inserts it $query = sprintf("INSERT INTO invo (invoice) values ('$customer_id')"); mysql_query($query)or die (mysql_error()); } else {mainform();} ?> Quote Link to comment https://forums.phpfreaks.com/topic/208908-php-submit-form-loop/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.