Space Cowboy Posted March 6, 2008 Share Posted March 6, 2008 Hey guys and gals, got a toughie here for someone to help me crack. Its a PHP and Javascript issue so was unsure really which forum topost in, but here goes..... http://www.edensteet.net/internal/newPurchaseOne.php If you look at this page I think you will see the general gist of what im wanting. Basically you select the quantity, type in a description of an item, type in the unit cost (ie cost per item), and then it automatically calculates the last field (quantity X unit price). Pretty easy so far! But what about this: http://www.edensteet.net/internal/newPurchase.php :o Now the code doesnt work. Now before anyone suggests a fix, each line need to be inserted into database. The code goes like this: <?php echo "<form name=\"frmOne\" method=\"post\" action=\"$PHP_SELF\">\n"; ?> <SCRIPT language = JavaScript> function calculate() { A = document.frmOne.inputQuantity.value B = document.frmOne.inputUnitPrice.value C = (A * B) document.frmOne.inputLineTotal.value = C } </SCRIPT> <?php echo "<table width=\"100%\">\n"; echo "<tr>\n"; echo "<td class=\"stats\"><p>Quantity\n"; echo "</p></td>\n"; echo "<td class=\"stats\"><p>\n"; echo "Item Description\n"; echo "</p></td>\n"; echo "<td class=\"stats\"><p>\n"; echo "Unit Price\n"; echo "</p></td>\n"; echo "<td class=\"stats\"><p>\n"; echo "Line Total\n"; echo "</p></td>\n"; echo "</tr>\n"; while ($i < '10') { echo "<tr>\n"; echo "<td class=\"stats\"><p>\n"; echo "<select name=\"inputQuantity[$i]\">\n"; echo "<option value=\"\">Quantity</option>\n"; echo "<option value=\"0\">0</option>\n"; echo "<option value=\"1\">1</option>\n"; echo "<option value=\"2\">2</option>\n"; echo "<option value=\"3\">3</option>\n"; echo "<option value=\"4\">4</option>\n"; echo "<option value=\"5\">5</option>\n"; echo "<option value=\"6\">6</option>\n"; echo "<option value=\"7\">7</option>\n"; echo "<option value=\"8\">8</option>\n"; echo "<option value=\"9\">9</option>\n"; echo "<option value=\"10\">10</option>\n"; echo "<option value=\"11\">11</option>\n"; echo "<option value=\"12\">12</option>\n"; echo "<option value=\"13\">13</option>\n"; echo "<option value=\"14\">14</option>\n"; echo "<option value=\"15\">15</option>\n"; echo "<option value=\"16\">16</option>\n"; echo "<option value=\"17\">17</option>\n"; echo "<option value=\"18\">18</option>\n"; echo "<option value=\"19\">19</option>\n"; echo "<option value=\"20\">20</option>\n"; echo "<option value=\"21\">21</option>\n"; echo "<option value=\"22\">22</option>\n"; echo "<option value=\"23\">23</option>\n"; echo "<option value=\"24\">24</option>\n"; echo "<option value=\"25\">25</option>\n"; echo "<option value=\"26\">26</option>\n"; echo "<option value=\"27\">27</option>\n"; echo "<option value=\"28\">28</option>\n"; echo "<option value=\"29\">29</option>\n"; echo "<option value=\"30\">30</option>\n"; echo "<option value=\"31\">31</option>\n"; echo "<option value=\"32\">32</option>\n"; echo "<option value=\"33\">33</option>\n"; echo "<option value=\"34\">34</option>\n"; echo "<option value=\"35\">35</option>\n"; echo "<option value=\"36\">36</option>\n"; echo "<option value=\"37\">37</option>\n"; echo "<option value=\"38\">38</option>\n"; echo "<option value=\"39\">39</option>\n"; echo "<option value=\"40\">40</option>\n"; echo "<option value=\"41\">41</option>\n"; echo "<option value=\"42\">42</option>\n"; echo "<option value=\"43\">43</option>\n"; echo "<option value=\"44\">44</option>\n"; echo "<option value=\"45\">45</option>\n"; echo "<option value=\"46\">46</option>\n"; echo "<option value=\"47\">47</option>\n"; echo "<option value=\"48\">48</option>\n"; echo "<option value=\"49\">49</option>\n"; echo "<option value=\"50\">50</option>\n"; echo "</select>\n"; echo "</p></td>\n"; echo "<td class=\"stats\"><p>\n"; echo "<input type=\"text\" name=\"inputDescription[$i]\" size=\"40\" maxlength=\"255\"/></p>\n"; echo "</p></td>\n"; echo "<td class=\"stats\"><p>\n"; echo "<input type=\"text\" name=\"inputUnitPrice[$i]\" size=\"5\" maxlength=\"255\" onKeyup=\"calculate()\"/></p>\n"; echo "</p></td>\n"; echo "<td class=\"stats\"><p>\n"; echo "<input type=\"text\" name=\"inputLineTotal[$i]\" size=\"5\" maxlength=\"255\"/></p>\n"; echo "</p></td>\n"; echo "</tr>\n"; ++$i; } echo "<tr>\n"; echo "<td class=\"stats\"><p>\n"; echo " \n"; echo "</p></td>\n"; echo "<td class=\"stats\"><p>\n"; echo "<input type=\"submit\" type=\"submit\" name=\"submit\" value=\"Submit\"/>\n"; echo "</p></td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "</form>\n"; ?> Basically this bit of the code "while ($i < '10') {" dictates how many rows to display. Thats the form and this is the code upon submission that sends to database: <?php if (isset($_POST['submit'])) { //--IF FORM HAS BEEN SUBMITTED // find out how many records there are to update $size = count($_POST['inputLineTotal']); // start a loop in order to update each record $i = 0; while ($i < $size) { // define each variable $inputQuantity= $_POST['inputQuantity'][$i]; $inputDescription= $_POST['inputDescription'][$i]; $inputUnitPrice= $_POST['inputUnitPrice'][$i]; $inputLineTotal= $_POST['inputLineTotal'][$i]; if ($inputLineTotal) { //--MAIN DATABSE QUERY $Query = "INSERT INTO internal_items (order_id, quantity, unit_price, line_price, description) VALUES ('77', '".mysql_escape_string($inputQuantity)."', '".mysql_escape_string($inputUnitPrice)."', '".mysql_escape_string($inputLineTotal)."', '".mysql_escape_string($inputDescription)."')"; $resultComplete = mysql_query ($Query); } ++$i; } if ($resultComplete) { //--IF EVERYTHING SUCCESSFULL THEM DIRECT TO POSITIVE MESSAGE header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/internal/newPurchase.php"); exit(); } else { //--IF NOT INSERTED INTO DATABASE SUCCESFULLY REDIRECT TO ERROR MESSAGE header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/internal/error.php?message=1"); exit(); } } //--END IF FORM HAS BEEN SUBMITTED ?> Now how do I get the javascript to work with the multiple rows of data? Ive tried the obvious which is: <SCRIPT language = JavaScript> function calculate() { A = document.frmOne.inputQuantity[$i].value B = document.frmOne.inputUnitPrice[$i].value C = (A * B) document.frmOne.inputLineTotal[$i].value = C } </SCRIPT> ....obviouslly with php start and end braces but still no work! If anyone can help, it would be much appreciated!!!! Link to comment https://forums.phpfreaks.com/topic/94793-phpjavascript-automatic-calculation/ Share on other sites More sharing options...
amites Posted March 6, 2008 Share Posted March 6, 2008 this is all about the javascript, I'd run it through a for loop, my javascript is to rough to come up with an example off the top of my head though a quick google search will show you some examples, try looking for javascript for loop form validation Link to comment https://forums.phpfreaks.com/topic/94793-phpjavascript-automatic-calculation/#findComment-485582 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.