Здравствуйте. Я пытаюсь создать сайт на локальном сервере Денвер, где у меня должна работать формула, которая принимает диапазон значений (начало и конец), введенный мною на странице html, и выводит его в таблицу с двумя столбцами. Я также должна задать количество строк на html-странице, но здесь у меня возникла проблема. Я нашла способ, которым это можно сделать, но, кажется, для моего кода он не совсем подходит, потому что я пыталась его изменить, но Денвер жаловался на долгую загрузку и на ошибку в строке кода, которую я так и не поняла. Он выводит все, кроме введенных значений. Так же остается проблема с тем, что у меня при некоторых числах не выводится последнее значение. Не знаю, может быть это особенность формулы или код неудобно задан, но при возможности решить эту проблему мне бы хотелось знать, как это исправить с минимальными изменениями условий конкретно формулы. Вот как выглядят кода: HTML: <!DOCTYPE html> <html> <head> <meta charset="windows-1251"> <script src="jquery-3.4.1.min.js"></script> </head> <body> <form action="result.php" method="POST"> <p>Введите ваше имя: <input type="text" name="name"> </p> <p><b>Вычисление функции f(x)=log(3 * arctg(x)):</b></p> <table> <tr> <td>Начальное значение</td> <td> <input type="text" name="first"> </td> </tr> <tr> <td>Конечное значение</td> <td> <input type="text" name="last"> </td> </tr> <tr> <td>Количество отсчетов</td> <td> <input type="text" name="quantity"> </td> </tr> </table> <h1></h1> <input type="submit" value="Вычислить"> </form> </body> </html> PHP: <?php header('Content-type: text/html; charset=windows-1251'); ?> <body> <p>Задание выполнил(а): <?php echo htmlspecialchars($_POST['name']); ?></p> </br> <?php $limit = $_POST['quantity']; $xstart = (float)$_POST['first']; $xend = (float)$_POST['last']; $d = 0.1; echo '<table border="1" align="center" valign="center" width="20%">'; echo "<center><b>Таблица значений функции f(x)=log(3 * arctg(x))<center></p>"; echo "<tr>"; echo "<th>x</th>"; echo "<th><center>f(x) $selectOption<center></th>"; echo "</tr>"; for ($x =$limit, $x = $xstart; $x<=$xend; $x+=$d){ $y = log(3 * atan($x)); echo "<tr><td><center>$x<center></td><td><center>$y<center></td>"; } echo "</table>"; ?>[/B] </body> Сделать так, чтобы у меня а таблице выводилось именно столько строк с результатами, сколько я задам на странице html, хотела так: HTML: <html> <head> </head> <body> <form method="GET" action="result.php"> <table border=0> <tr> <td> <b> Количество строк: </b> </td> <td> <input type="text" name="r"> </td> </tr> <tr> <td> <b> Количество столбцов: </b> </td> <td> <input type="text" name="c"> </td> </tr> </table> <p> <input type="submit" name="sub" value="Отправить"> </p> </form> </body> </html> PHP: <?php $rows = $_GET['r']; $cols = $_GET['c']; $table = '<table border="1">'; for ($tr=1; $tr<=$rows; $tr++){ $table .= '<tr>'; for ($td=1; $td<=$cols; $td++){ if ($tr===1 or $td===1){ $table .= '<th style="color:hotpink;background-color:gold;">'. $tr*$td .'</th>'; } else{ $table .= '<td style="color:blue;background-color:gray;">'. $tr*$td .'</td>'; } } $table .= '</tr>'; } $table .= '</table>'; echo $table; ?> Если что не так у меня в теме - прошу, дайте знать. Надеюсь, что коды читаемые.
Поставьте что-то поновее, XAMPP или Open Server, а то сейчас вам набегут подсказывать современным синтаксисом, а у вас ответы просто не запустятся, в денвере очень-очень старый php. Шаг надо рассчитывать исходя из количества значений, которые должны быть выведены, ($xend- $xstart) / $quantity При сравнении вещественных чисел далеть поправку на точность. Приведите ошибку
Я бы с радостью использовала поновее, но по условиям я этого не могу использовать. Там только Денвер можно, потому что других локальных серверов включено в программу не было и у них там этого тоже в основном нет. Хорошо, я попробую в этой теме разобраться. Просто php здесь должен принимать любой диапазон из начального и конечного значения вместе с количеством строк. В пределах разумного, конечно. Имеете в виду if вставить или какой-нибудь спецсимвол к сравнениям? Не совсем понимаю. В этом коду такой ошибки нет - она возникала, когда я пыталась его изменить под второй код из этой же темы. Скриншоты, боюсь, мало что покажут, но пусть будут. Надеюсь, я вас правильно поняла. Первый скриншот - это код, который здесь, а второй - это код, который я, если это к месту вообще говорить, "испортила".
Ну как бы подход то правильный, что именно не работает? во вторых (ваших) кодах логика правильная, по сути должно отработать, передали границы, отработали циклом по границам. или Вы первый код и свой пытаетесь слепить? там тогда одна из проблем в разных методах передачи пост и гет, Вы часть данных не получаете и обрабатывать нечего
К сожалению, я сама точно определить не могу. Скорее всего проблема именно в том, что я просто не могу красиво "сплести" вместе мой код с кодом, в котором можно ввести количество строк и столбцов. Я все меняла на GET, точно помню. Если я не ошибаюсь, то у POST должен и GET работать, но либо я что-то не так поняла здесь, либо это актуально, как вы могли приближенно мне намекнуть об этом, для более новых версий php и локальных серверов. Как будет момент, постараюсь и здесь узнать побольше.