phspanthers Posted September 14, 2014 Share Posted September 14, 2014 I am new to php and need help creating addition and multiplication tables using the html code we were given. I feel like I am on the right track, but I am getting a few errors and I cant figure them out. One of the errors is that it tells me I am not putting in a valid number for rows even though it is a positive number so it should work. Here is my code and all help is appreciated thanks in advance. <html> <head/> <body> <form method="POST" action="<?= $_SERVER['PHP_SELF'] ?>"> <table border="1"> <tr><td>Number of Rows:</td><td><input type="text" name="rows" /></td></tr> <tr><td>Number of Columns:</td><td><select name="columns"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="8">8</option> <option value="16">16</option> </select> </td></tr> <tr><td>Operation:</td><td><input type="radio" name="operation" value="multiplication" checked="yes">Multiplication</input><br/> <input type="radio" name="operation" value="addition">Addition</input> </td></tr> </tr><td colspan="2" align="center"><input type="submit" name="submit" value="Generate" /></td> </tr> </table> </form> <?php //check to see if num of rows is numberic if (isset($_POST["rows"]) && is_numeric($_POST["rows"])){ //check to see if rows is a positive number if($_POST["rows"] > 0){ if(isset($_POST) && $_POST['operation'] == "multiplication") { for($r = 0; $r < $_POST["rows"]; $r++){ echo '<tr>'; for($c = 0; $c < $_POST["columns"]; $c++){ echo '<td>' .$c*$r. '</td>'; echo '</tr>'; }} } else if (isset($_POST) && $_POST['operation'] == "addition") { for($r = 0; $r < $_POST["rows"]; $r++){ echo '<tr>'; for($c = 0; $c < $_POST["columns"]; $c++){ echo '<td>' .$c+$r. '</td>'; echo '</tr>'; } } } } else{ echo 'Invalid rows columns parameters'; exit(); } } else{ echo 'Invalid rows columns parameters'; exit(); } ?> </body> </html> Link to comment https://forums.phpfreaks.com/topic/291060-help-creating-multiplication-and-addition-tables-in-php/ Share on other sites More sharing options...
Strider64 Posted September 14, 2014 Share Posted September 14, 2014 I was bored, it isn't perfect but it works and needs to be stylized: <?php /* I would pull the form and table apart, by that I mean */ /* don't try to do two things at once. I haven't done */ /* any number validation and I'm sure this needs to be */ /* modified for I don't know what exactly the initial */ /* HTML looked liked. */ if ( isset($_POST['submit']) && $_POST['submit'] == "Generate" ) { $numRows = $_POST['rows']; $numCols = $_POST['columns']; $operand = $_POST['operation']; } ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Learning How to Multiply & Add</title> <style> table { border-collapse: collapse; } table, th, td { border: 1px solid #2e2e2e; } </style> </head> <body> <form action="" method="post"> <label for="numRows" class="labelStyle">Number of Rows:</label> <input id="numRows" name="rows" value=""> <label for="numCols" class="labelStyle">Number of Cols:</label> <select id="numCols" name="columns"> <option value="1">1</option> <option value="2">2</option> <option value="4">4</option> <option value="8">8</option> <option value="16">16</option> </select> <br> <h3>Operation</h3> <input id="multiplication" type="radio" name="operation" value="multiplication" checked> <label for="multiplication">Multiplication</label> <input id="addition" type="radio" name="operation" value="addition"> <label for="addition">Addition</label> <br> <input class="submitBtn" type="submit" name="submit" value="Generate"> </form> <table class="tableStyle"> <thead> <tr> <!-- Number of Colums and Rows are initial set to 10 --> <?php $columns = isset($numCols) ? $numCols : 10; ?> <th colspan="<?php echo $columns ?>"><?php echo $columns . " Columns"; ?></th> </tr> <tr> <?php for($x = 0; $x < $columns; $x++) { echo '<th>' . $x . '</th>' . "\n"; } ?> </tr> </thead> <tbody> <?php $rows = isset($numRows) ? $numRows : 10; for($x = 0; $x < $rows; $x++) { echo "<tr>\n"; for($y = 0; $y < $columns; $y++) { /* If operand isn't set yet, I set it to an addition default */ if ( isset($operand) && ($operand == "multiplication")) { echo "<td>" . $x . " X " . $y . " = " . ($x * $y) . "</td>\n"; } elseif ( isset($operand) && ($operand == "addition") ) { echo "<td>" . $x . " + " . $y . " = " . ($x + $y) . "</td>\n"; } else { echo "<td>" . $x . " + " . $y . " = " . ($x + $y) . "</td>\n"; } } echo "</tr>\n"; } ?> </tbody> </table> </body> </html> Link to comment https://forums.phpfreaks.com/topic/291060-help-creating-multiplication-and-addition-tables-in-php/#findComment-1491108 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.