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!!!! Quote Link to comment 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 Quote Link to comment 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.