Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 18.05.2019, 03:26   #1
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Адрес: Красноуфимск
Сообщений: 13
Репутация: 10
По умолчанию Как рядом с полем ввода очередного значения увидеть предыдущее введённое значение как контрольное

Имеется HTML-страница с POST-формой ввода данных в 2 таблицы БД (по выбору)
Моя идея такая:
1. Выбрать имя таблицы в БД и передать в файл 1.php, где из этой таблицы будут выбраны последние введённые данные и показать эти данные рядом с полями ввода как контрольные
2. Ввести новые данные и передать их в файл 2.php, где они будут опять-таки сначала показаны, а затем после подтверждения добавлены в эту таблицу
! $_POST не подходит, т.к. данные заносятся раз в месяц

Пока (уже более года) добавление новых данных я делаю так:
Код:
            <form action="scripts/calk_insert.php" method="post" name="forma">
                <fieldset>
                    <legend>Выбери таблицу</legend>
                    <label for="table">Показания:</label>
                    <input id="table" type="radio" name="table" value="energy_real" checked> реальные 
                    <input type="radio" name="table" value="energy_report"> для отправки
                </fieldset>                
                <fieldset> 
                    <legend>Введите данные:</legend>
                    <label for="dt_input">Дата:</label>
                    <input type="date" name="dt_input" size="30"><br/>
                    <label for="kW_total_daily">День:</label>
                    <input type="number" name="kW_total_daily" size="30"><br/>
                    <label for="kW_total_night">Ночь:</label>
                    <input type="number" name="kW_total_night" size="30"><br/>
                </fieldset>
                <br/>
                <fieldset>
                    <input id="submit" type="submit" value="Отправить данные"><br/>
                </fieldset>
                <a href="index.php">На главную</a>
            </form>
но, перед тем как ввести новые, хочется видеть те, что ввёл ранее, а уже введённые вставить в таблицу только после подтверждения

Для сведения: Всё это делаю лично для себя на локальном сервере XAMPP

Последний раз редактировалось Nikolaй; 18.05.2019 в 03:33.
Nikolaй вне форума   Ответить с цитированием
Старый 31.05.2019, 08:30   #2
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Адрес: Красноуфимск
Сообщений: 13
Репутация: 10
По умолчанию

Ну что-ж - с первой частью своей задумки, а именно: вывод предыдущих показаний на страницу с формой, мне удалось справиться! Для этого пришлось знакомиться с jquery и ajax, а это для меня совершенно новое, мало понятное (и, к сожалению, из-за своего возраста, мне это уже не осилить!) Но, просмотрев и проанализировав массу примеров, я всё же понял как это делается: сейчас я уже могу из выбранной в форме таблицы получить нужные мне данные и вывести на эту же страницу с формой без переключения страниц.
Изображения
 

Последний раз редактировалось Nikolaй; 31.05.2019 в 08:34.
Nikolaй вне форума   Ответить с цитированием
Старый 31.05.2019, 10:10   #3
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

Цитата:
Сообщение от Nikolaй Посмотреть сообщение
мне удалось справиться!
поздравляю.

продолжайте в том же духе и всё получится
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 31.05.2019, 17:23   #4
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Адрес: Красноуфимск
Сообщений: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
продолжайте в том же духе...
Стараюсь! А вот где (в каком месте) задать стили таблице, в которую выводятся данные, так и не знаю! И найти ничего подходящего не смог.
Может подскажете
Nikolaй вне форума   Ответить с цитированием
Старый 31.05.2019, 17:58   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

Цитата:
Сообщение от Nikolaй Посмотреть сообщение
задать стили таблице
не понял вопроса.

это же делается через стили ( style, CSS)
Что Вы хотите задать?

например,
Код HTML:
<html><head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
    <title>Пример!</title>
    
    <!-- стили -->
    <style type="text/css">
      table
      {
        width: 80%;
        font-size: 12pt;
        font-family: lucida console;
        color: navy;
        border: 1px solid black;
      }

      tr
      {
        border: 1px solid black;
      }

      td
      {
        border: 1px solid black;
        padding: 3px;
        spacing: 3px;
      }

      .tr_hdr
      {
        font-size: 20pt;
        font-family: arial narrow;
        color: maroon;
        background-color: #A3ED0F;
        text-align:   center;
      }
        
      .img_w
      {
        max-width:  320px;
        max-height: 240px;
        text-align:   center;
        /*border: 3px solid #73AD21;*/
      }
    </style>
</head>
    <body>
    <hr>
    <p>Таблица 1
    
    <table>
    <col>
    <col width=10%>
    <col width=20%>
      <tbody><tr class="tr_hdr">
        <th>Название</th>
        <th>Количество</th>
        <th>Картинка</th>
      </tr>
      
      <tr><td>Вещь 1</td><td align="right">1 </td><td align="center"><img class="img_w" src="pic1.png" title="Вещь 1"></td></tr>
      <tr><td>Вещь 2</td><td align="right">20 </td><td align="center"><img class="img_w" src="pic2.png" title="Вещь 2"></td></tr>
      <tr><td>Вещь 3</td><td align="right">15 </td><td align="center"><img class="img_w" src="pic3.png" title="Вещь 3"></td></tr>
    </tbody></table>
  
  

</body></html>

Последний раз редактировалось Serge_Bliznykov; 31.05.2019 в 18:01.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 01.06.2019, 10:34   #6
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Адрес: Красноуфимск
Сообщений: 13
Репутация: 10
По умолчанию

Тут я ошибся

Последний раз редактировалось Nikolaй; 01.06.2019 в 10:47.
Nikolaй вне форума   Ответить с цитированием
Старый 01.06.2019, 10:46   #7
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Адрес: Красноуфимск
Сообщений: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
...
это же делается через стили
[/html]
Извините, но это я уже знаю и давно использую.
В данном же случае речь идёт о таблице, которой на странице с формой нет, и она никак не объявлена - она ещё только будет динамичски формироваться jquery-ajax-запросом! Так как же ей задать стили, если её нет!
Ну вот! Перечитав то, что я только что написал и увидев слово "динамически", мне стало смешно и стыдно за свой вопрос к Вам! Ведь я уже делал это - я применил стили к сформированной динамически итоговой таблице!
Но вопросы всё же есть.
  1. Хотя у меня всё это работает, но всё ли я сделал как надо? Или есть более предпочтительный способ этим же jquery-ajax-запросом вывести полученные с сервера данные?
  2. В область вывода данных (div "right_block") я вывожу и дату внесения последних показаний, но (см. скрин), но как к этой дате применить стиль?
Вот мой код:
Это html файл
Код:
div class="wrapper" style="clear:both">
		<div class="left_block" style="clear:both"> <!-- Это для формы -->
		<form id="Form1" action="scripts/data_previous.php">
				<label for="table"></label>
				<input id="table" type="radio" name="table" value="energy_real">Реальные данные<br/>
				<input type="radio" name="table" value="energy_report">В энергосбыт<br><br> 
				<input type="submit" name="submit1" value="Принять" data-method="serialize"><br>
		</form>
		</div>

		<div class="right_block" style="clear:both"> <!-- Это для таблицы с результатом -->
			<p><u>Предыдущие показания</u></p>
			<!-- Элемент для вывода результата:
			именно сюда и будет выведен результат -->
			<div id="tbl_result"></div>
		</div>
	</div>
А это в файл PHP
Код:
$pdo = get_pdo();
	$sth = $pdo->prepare("SELECT `dt_input`, `kW_total_daily`, `kW_total_night` FROM `$table` ORDER BY `dt_input` DESC LIMIT 1");
	$sth->execute();
	$res = $sth->fetchAll(PDO::FETCH_ASSOC);
	
//Задать стиль для даты
$data=$res[0]['dt_input']; echo $data;
$data = "<table class='tbl_previous'>"; echo $data;
foreach ($res as $value) {
  //$data = "<tr><td>"."Дата"."</td><td>".$value['dt_input']."</td></tr>"; echo $data;
  $data = "<tr><td>"."День"."</td><td>".$value['kW_total_daily']."</td></tr>"; echo $data;
  $data = "<tr><td>"."Ночь"."</td><td>".$value['kW_total_night']."</td></tr>"; echo $data;
}
$data = "</table>"; echo $data;
Изображения
 

Последний раз редактировалось Nikolaй; 01.06.2019 в 10:50.
Nikolaй вне форума   Ответить с цитированием
Старый 05.06.2019, 07:22   #8
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Адрес: Красноуфимск
Сообщений: 13
Репутация: 10
По умолчанию

Не получается занести новые показания!
Проблема в том, что:
  • если поместить все инпуты в одной форме, то после выбора таблицы и submit-отправки её в php-скрипт по URL_1 метдом "serialize", второй submit в php-скрипт по URL_2 с остальных инпутов (дата и новые показания) уже не выполняется. Или я не знаю как это сделать - решения так и не нашёл.
  • если разделить ввод на две формы: из первой только выбранную таблицу, а из второй дату и новые показания, то опять тупик - как к submit второй формы "прил
епить" выбранную в первой форме таблицу. Не выбирать же её заново!

Искал решения с двумя submit в одной форме - не нашёл.
Искал как значение радиокнопки из одной формы передать в S_POST второй формы - тоже не нашёл!
Может быть из того, что я перерыл в инете и можно было бы применить, но, к сожалению, в Java Script мои познания очень малые...

Последний раз редактировалось Nikolaй; 05.06.2019 в 07:35.
Nikolaй вне форума   Ответить с цитированием
Старый 05.06.2019, 10:33   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,613
Репутация: 5617
По умолчанию

на JS можно сделать всё, что Вам нужно.
тем более, с подключённым jquery.
Более того, submit формы можно заменить на ajax запрос и вообще делать что угодно.

только мне лично непонятно, в чём у Вас сложность.
какие две формы, зачем два submit?
если Вы приведёте свои формы и расскажите подробно, что нужно - есть шанс получить конкретную помощь.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 05.06.2019, 18:36   #10
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Адрес: Красноуфимск
Сообщений: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
на JS можно сделать всё, что Вам нужно.
тем более, с подключённым jquery.
Более того, submit формы можно заменить на ajax запрос и вообще делать что угодно.

только мне лично непонятно, в чём у Вас сложность.
какие две формы, зачем два submit?
если Вы приведёте свои формы и расскажите подробно, что нужно - есть шанс получить конкретную помощь.
Заранее спасибо!
Первая форма в пост#7. Работает и делает то, что мне хотелось - тут же рядом с формой выводит предыдущие показания счётчика. Надеюсь, из приведённого кода и риложенного скрина Вам понятно что и как делается, но важно: в этой форме я выбираю таблицу БД, в которую я намрен внести новые показания счётчика.

Теперь мне надо внести эти новые показания (за текущий месяц), т.е. дату, дневные показания и ночные показания, и отправить их в другой файл (calk_insert.php), где они и будут добавлены в выбранную в первой форме таблицу.
Вот код второй формы:
Код:
<fieldset>
<form id="Form2" action="scripts/calk_insert.php">
<legend>Введите данные:</legend>
	<label for="dt_input">Дата:</label>
	<input type="date" name="dt_input" size="30"><br/>
	<label for="kW_total_daily">День:</label>
	<input type="number" name="kW_total_daily" size="25"><br/>
	<label for="kW_total_night">Ночь:</label>
	<input type="number" name="kW_total_night" size="25"><br/>
</fieldset>
<br/>
<fieldset>
	<input id="submit" type="submit2" value="Отправить данные"><br/>
</fieldset>
</form>
Вот тут-то я и застрял! В calk_insert.php приходят дата и показания, но НЕ приходит имя таблицы, а следовательно не выполнится SQL-запрос к БД!
А как передать в calk_insert.php имя уже введённой в первой форме таблицы, я так и не смог найти. Не вводить же её ещё раз! Тогда зачем это весь огород! Форма с выбором таблицы, даты и показаний у меня и так работает уже более года.
Наверное есть способ передать значение выбранной радиокнопки из одной формы в другую, но...
Наверное есть способ к массиву $_POST прибавить значение уже выбранной в другой форме радиокнопки, и опять но...
Nikolaй вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка с полем для ввода NebesnyiOgon Microsoft Office Excel 4 20.08.2014 15:15
joomla Как добавить поле рядом с полем "автор"? sasha1304 WordPress и другие CMS 1 24.01.2013 13:50
Изменить язык ввода (раскладку клавиатуры) при получении фокуса полем SMShrek Microsoft Office Access 4 04.07.2011 09:42
Как узнать предыдущее id-значение? denisov PHP 1 08.05.2010 19:58
запомнить предыдущее значение StasSv Microsoft Office Excel 1 10.11.2008 09:47


18:52.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru