09.05.2020, 06:23
|
|
Интересующийся
|
|
Регистрация: 03.05.2020
Сообщений: 17
|
|
Форма функции и ее обработчик данных (HTML и PHP на Денвере)
Здравствуйте! Я пыталась сделать вычисление функции f(x)=log(3 * arctg(x)) с html и php на Денвере, которое бы по результатам и виду соответствовало прикрепленным скриншотам (простите за качество, если смогу исправить - потом сделаю, надеюсь хоть что-то видно), а также вот таким условиям: - Первая страница (html) - принимает значения в виде имени, начального и конечного значений, их количества в таблице.
- Вторая страница (php) - выводит все это, как оформлено. Имя сверху, начальное и конечное значения в таблице, и у них задано количество отсчетов.
- У меня не выводится введенное имя. Ни GET, ни POST его не выводят. Скорее всего, я допустила какую-то ошибку синтаксиса, хотя Денвер на этом молчит, а до меня пока что не дошло, как починить это.
- Не знаю, как сделать так, чтобы в таблице выводилось именно столько значений, сколько задано в поле количества отсчетов. Может быть, есть какая-то "настройка" для функции?
- Последние значения не всегда выводятся. Скажем, единица выводится, а двойка нет, тройка тоже и т.д.
- Если возможно, хотелось бы, чтобы в таблицу выбирались более средние значения, а не по рандому, то есть, например, если задается от 1 до 2х и отсчеты равны 5и, то он выводит "1, 1.25 ,1.5, 1.75 , 2" или "1, 1.3 ,1.5, 1.8 , 2", а если так нельзя, то чтобы хотя бы отсчеты заработали по количеству значений нормально.
- У меня по-русски нормально в Денвере по какой-то причине не выводит - одни иероглифы.
- Хотелось бы весь текст в целом сделать побольше, чем он есть. Скорее всего, это задается классом или функцией, но я не совсем понимаю, как это сделать наравне и на странице html, и на php.
- В целом код вышел у меня не совсем толковый и скудноватый, поэтому если у вас будут критика и замечания - я слушаю. Повторяюсь, конечно, но все равно еще раз скажу - я слаба в этих темах и мне толком знакомы в основном html и css. Буду рада слышать профессионалов и знатоков. Заранее спасибо за внимание к моей проблеме .
Вот код. Надеюсь, я смогла сделать его читаемым:
<!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 action="result.php" method="GET">Введите ваше имя:
<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
header('Content-type: text/html; charset=windows-1251');
?>
<body>
<p>Задание выполнил(а):<?php
$_POST['name'];
?></p>
</br>
<?php
$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 = $xstart; $x<=$xend; $x+=$d){
$y = log(3 * atan($x));
echo "<tr><td><center>$x<center></td><td><center>$y<center></td>";
}
echo "</table>";
?>
</body>
Изображения:
|
1.jpg (63.0 Кб, 7 просмотров) |
|
2.jpg (66.7 Кб, 7 просмотров) |
|
|
09.05.2020, 06:57
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Безнадежный программист
|
$_POST['name'];
|
Это не вывод, это вообще никакого действия, вывод это:
<p>Задание выполнил(а):<?php
echo htmlspecialchars($_POST['name']);
?></p>
либо
<p>Задание выполнил(а): <?=htmlspecialchars($_POST['name'])?></p>
|
|
09.05.2020, 10:33
|
|
Интересующийся
|
|
Регистрация: 03.05.2020
Сообщений: 17
|
|
Сообщение от laimas
|
Это не вывод, это вообще никакого действия
|
Да, здесь я знала, что сильно ошиблась, но исправить хотя бы на GET, чтобы не так странно выглядело, у меня времени уже не оставалось. Спасибо.
|
|
09.05.2020, 13:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Безнадежный программист
|
исправить хотя бы на GET
|
Ну изменяйте метод передачи формы на GET и на сервере обрабатывайте массив $_GET, а не $_POST. Одновременно передать данные методом GET и POST форма может только при методе POST.
|
|
12.05.2020, 16:12
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Безнадежный программист
|
У меня по-русски нормально в Денвере по какой-то причине не выводит - одни иероглифы.
|
Не соответствие кодировок - объявленной и файла.
|
|
12.05.2020, 17:53
|
|
Интересующийся
|
|
Регистрация: 03.05.2020
Сообщений: 17
|
|
Сообщение от laimas
|
Не соответствие кодировок - объявленной и файла.
|
Уже решили конкретно эту проблему, но все равно спасибо.
|
|
12.05.2020, 18:52
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
А в остальном какие проблемы, если "побольше текст", это размер шрифта, то это забота CSS. Нет вывода нужного - выводите в браузер счетчик итерации для понимания проблемы.
|
|
12.05.2020, 19:47
|
|
Интересующийся
|
|
Регистрация: 03.05.2020
Сообщений: 17
|
|
Сообщение от laimas
|
А в остальном какие проблемы
|
Я все еще решаю проблемы по пунктам 4, 5 и 6, потому что в интернете пока что подходящего ответа не видела, а мои "игры" с кодом в течении всего этого времени не очень удачно заканчиваются.
Сообщение от laimas
|
Нет вывода нужного - выводите в браузер счетчик итерации для понимания проблемы.
|
Не совсем понимаю здесь совета. Вы мне предлагаете работать с консолью браузера или буквально просто выводить код в браузер? Простите, если я вас совсем не так понимаю.
|
|
12.05.2020, 20:36
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Безнадежный программист
|
Вы мне предлагаете работать с консолью браузера
|
Консоль к РНР отношения не имеет, это серверный язык и выполняется на сервере. А вывод в браузер, это результат работы РНР, и это echo, print, и т.д. его функции, которые вполне могут быть простейшим отладчиком. По крайней мере они позволят вам проверить свои ожидания с происходящим реально в коде.
|
|
13.05.2020, 04:15
|
|
Интересующийся
|
|
Регистрация: 03.05.2020
Сообщений: 17
|
|
Сообщение от laimas
|
вывод в браузер, это результат работы РНР, и это echo, print, и т.д. его функции, которые вполне могут быть простейшим отладчиком. По крайней мере они позволят вам проверить свои ожидания с происходящим реально в коде.
|
Так я это и делаю. Как по вашему я нашла ошибки, которые описала выше? Код-то уже рабочий есть - я ищу решение по паре проблем.
|
|
|
|