Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 12

Рисование по данным из формы

18.12.2013, 20:04. Показов 868. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! не могу решить эту проблему уже пару недель - имеется скрипт php, который получает данные из формы и строит по ним изображение. Форма находится в самом скрипте и в случае отправки данных отбражатся картинка. ВРоде работает, при запуске выдается форма, отправляются данные, но после картинка появляется, а форма пропадает, а нужно сделать так, чтоб она осталась. как это можно реализовать?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
if (isset($_GET['action']))
{
    header ("Content-type: image/png");
if (isset($_GET['relef']) && $_GET['relef'] == r) // рисуем только рельеф
    {
        // читаем файл с рельефом
$r = fopen('relief.grd', 'rb');
if(!$r) echo 'Ошибка при открытии файла';
$dssb = fread($r, 4);
 
$n = fread($r, 2);
$var=unpack("sn", $n);
$N = $var['n'];
 
$m = fread($r, 2);
$var=unpack("sm", $m);
$M = $var['m'];
 
$xmin = fread($r, 8);
$var=unpack("dx1", $xmin);
$Xmin=$var['x1'];
 
$xmax = fread($r, 8);
$var=unpack("dx2", $xmax);
$Xmax=$var['x2'];
 
$ymin = fread($r, 8);
$var=unpack("dy1", $ymin);
$Ymin=$var['y1'];
 
$ymax = fread($r, 8);
$var=unpack("dy2", $ymax);
$Ymax=$var['y2'];
 
$zmin = fread($r, 8);
$var=unpack("dz1", $zmin);
$Zmin=$var['z1'];
 
$zmax = fread($r, 8);
$var=unpack("dz2", $zmax);
$Zmax=$var['z2'];
for($i=0; $i<$M; $i++) 
{
    for($j=0; $j<$N; $j++)
        {
             $z1=fread($r, 4);
             $var=unpack("fz", $z1);
             $Z[$i][$j] = $var['z'];
        }
}
fclose($r);
$im = @imagecreate ($N, $M) 
        or die("Что-то пошло не так...");
$background_color = imagecolorallocate($im, 255, 255, 255);
$r_1 = imagecolorallocate($im, 0, 153, 0);
$r_2 = imagecolorallocate($im, 204, 204, 0);
$r_3 = imagecolorallocate($im, 204, 153, 0);
$r_4 = imagecolorallocate($im, 204, 102, 0);
$r_5 = imagecolorallocate($im, 102, 0, 0);
$q=$Zmax/2;
for ($i=0; $i<=$N; $i++) 
{
    for($j=0; $j<=$M; $j++)
{ 
        if($Z[$i][$j]>= $Zmin && $Z[$i][$j]<= $Zmin + $q/2)
            {imagesetpixel ($im , $i ,$j , $r_1); }
           else if($Z[$i][$j]>= $Zmin+$q/2 && $Z[$i][$j]<= $q/2)
                   {imagesetpixel ($im , $i ,$j , $r_2); }
    else if($Z[$i][$j] >= $q/2 && $Z[$i][$j]<= $q )
        {imagesetpixel ($im ,  $i ,$j , $r_3); }
        else if ($Z[$i][$j] >= $q && $Z[$i][$j]<= $q + $q/2 )
        {imagesetpixel ($im ,  $i , $j , $r_4);}
         else 
             {imagesetpixel ($im ,  $i , $j , $r_5);}
} 
}
$im2 = imagerotate ($im , 90 ,$background_color  );
imagepng($im2);
imagedestroy($im);
imagedestroy($im2);
    }
// тут еще подобный код по условиям
}
echo ("<div align='right'>");
echo("<form action='".$_SERVER['PHP_SELF']."' method='GET'>\n");
echo <<< FORM
 <input  type="checkbox" name="relef" value="r">Рельеф местности<br />  
        <input type="checkbox" name="h"  value="h">Глубина<br />
         <input name="action" type="hidden" value="true">
        <input type="submit" value="Построить"><br /></form> 
FORM;
echo ("</div>");
    ?>
Пробовала разбивать на два документа, в html документе делала помипо формы еще и <img> со ссылкой на php скрипт, но изображение опять таки выводилось на чистой странице, форма пропадала. Помогите кто нибудь решить эту проблему..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2013, 20:04
Ответы с готовыми решениями:

Рисование кругов по данным из файла
Надо нарисовать круги, с условием, что данные(координата х, координата у и радиус считываются с файла). Проблема с считыванием, остальное...

Рисование графика функции по введенным данным
Скажите, вообще возможно, что бы когда пользователь вводил(например в текстбокс) чему равняется игрик (например: х/2 или 2х+4-х/1), то...

Рисование графика в Chart по данным из DataGridView
Перелазил весь инет но так и не нашёл ответа. Есть datagridview и chart. Пользователь вводит данные в DataGridView и при нажатии на кнопку...

2
Иллюзионист
 Аватар для philin
154 / 153 / 27
Регистрация: 02.10.2013
Сообщений: 330
18.12.2013, 21:49
У каждого запроса есть тип передаваемых данных. Картинка выводится, как и прописано, "Content-type: image/png". Данные в этом запросе будут распознаваться как изображение, текст сюда не вставить.
Значит, нужно несколько запросов. Обычно создают временный файл и вставляют в ответ <img> со ссылкой на него. Либо так же в <img> вставляют ссылку с get-параметрами на php-скрипт, отдающий картинку. Тогда и получится: основной запрос вернет документ с формой, а когда браузер запросит картинку для <img> — картинку и получит.
Разбивать на 2 документа как раз верная идея. Покажите, что получалось, - поправим, что не так.

Можно еще изображение передать строкой прямо в документе, закодировав в base64, но это не очень хорошая идея. Кодирование/раскодирование время занимает.
1
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 12
19.12.2013, 19:03  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
  <title>Построение</title>
</head>
<body bgcolor="CCCCFF">
<div align="left">
<form action="index.php" method="GET">
Выберете нужный слой:<br>
<input name="relef" type="checkbox" value="r">Рельеф местности<br>
<input name="h" type="checkbox" value="h">Глубина<br>
<p><input name="submit_button" type="submit" value="Построить"></p>
</div>
<div align="right">
    <img src="<index.php>" alt="">
</div>
    </body>
</html>
вот такой html документ у меня был, но картинка выводлась все равно на чистой странице, как исправить, подскажите пожалуйста, я просто не знаю как еще сослаться на эту картинку в теге img
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2013, 19:03
Помогаю со студенческими работами здесь

рисование графических примитивов по данным из файла
дан текстовый файл. в файле на каждой строке записана процедура рисования графического примитива и значения параметров через 1...

Рисование фигуры по введенным данным с контролем ввода
Функция которая рисует квадрат считывает сторону с TextBox. Если длина стороны лежит в промежутке все рисуется, если больше или меньше то...

Отчет по данным из формы
Добрый день! Не получается вывести отчет по фильтрованным данным из формы (выводятся все данные). Хочется сделать так: Выбираешь в форме...

Выборка по данным формы
Привет! Есть БД с договорами и есть форма (просмотр договора), которая выводит данные по договору. Также на форме располагается кнопка на...

Отчет по данным из формы
У меня есть форма, составленная по запросу, на которую выводятся данные обо всех сотрудниках. На форме стоит фильтр, чтобы я мог...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru