Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2019, 21:48   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Nikolaй Посмотреть сообщение
Первая форма в пост#7. Работает и делает то, что мне хотелось - тут же рядом с формой выводит предыдущие показания счётчика.
вы же говорили, что
Цитата:
Сообщение от Nikolaй Посмотреть сообщение
Для этого пришлось знакомиться с jquery и ajax,
Вы данные получаете через ajax ?
или это просто для красного словца?
Если да - то где код?

Первая и вторая формы в разных файлах?
Если да, то вторая форма отображается после выбора в первой?
Где переход на вторую форму?
Почему Вы не показываете файл с формой целиком?

Цитата:
Сообщение от Nikolaй Посмотреть сообщение
А как передать в calk_insert.php имя уже введённой в первой форме таблицы, я так и не смог найти. Не вводить же её ещё раз! Тогда зачем это весь огород! Форма с выбором таблицы, даты и показаний у меня и так работает уже более года.
я ещё раз повторяю, я вообще не понимаю, что Вы делаете.

на мой взляд должно быть так
1) один HTML файл
2) в этом файле радиокнопка выбора данных/таблицы.
На её изменение / переключение jQuery код, выполняет AJAX запрос к серверу и тут же отображение результата рядом.
3) в этом же HTML файле форма с данными для отсылки на сервер, которая отсылает нужные формы и таблицу
после отсылки - переход на другую страницу (например, подтверждение, что запись в БД произведена).

что я понимаю не так?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.06.2019, 04:35   #12
Nikolaй
Пользователь
 
Регистрация: 07.05.2019
Сообщений: 13
По умолчанию

Да, когда я понял, что только средствами PHP не удастся сделать то, что я задумал, я сразу же нашёл и скачал вот это: "Антон Шевчук. jquery учебник для начинающих". Но когда я стал это читать, то, понял что мой склероз не позволит мне это осилить. Во-первых ООП - я впервые с этим сталкиваюсь. Суть понятна, но очень сложно! Во-вторых сам язык Java...
Я прекрасно понимаю Ваше возмущение по поводу того, что ученик не желает изучать материал! Но я уже на 8 десятке: я смотрю пример из учебника, потом перехожу на страницу со своей задачей и с ужасом понимаю, что не смогу воспризвести того, что только что видел. Извините за это отступление.
Теперь о моих файлах. У меня уже 17 вариантов этого файла с формами! Самый первый вариант в посте#1 этой темы - это стандартный html-файл, добавьте HTML5-обрамление и всё.
Чтобы получить то, что Вы видите в посте#2, файл стал таким:
Код:
<!DOCTYPE html>
<html>
	<head>
		<title>Добавление показаний в БД</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" type="text/css" href="scripts/style.css"/>
		<!--script src="http://code.jquery.com/jquery-latest.js"></script-->
		<!-- Это свой jQuery - Работает! Т.е. можно работать без интернета!-->
		<script src="http://localhost/phpMyAdmin/js/jquery/jquery-1.11.1.min.js"></script>
		
	</head>
	<body>

	<div class="wrapper" style="clear:both"> <!-- wrapper по-английски - обертка-->
		<div class="left_block" style="clear:both"> <!-- Это для выбора таблицы -->
		<form id="Form1" action="scripts/data_previous.php" novalidate>
				<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>
		</div> <!-- class="left_block" -->
		
		<div class="right_block" style="clear:both"> <!-- Это для таблицы с результатом -->
			<p><u>Предыдущие показания</u></p> <!-- Здесь тег <u> - это подчёркивание -->
			<!-- Область для вывода результата:
			именно сюда он и будет выведена динамически сформированная таблица
			с предыдущими данными -->
			<div id="tbl_result"></div>
		</div> <!-- class="right_block" -->
		</form>
	</div> <!-- class="wrapper" -->
	
<!-- Что здесь:
1. Скрипт отсылает имя выбранной таблицы в data_previous.php, где из этой таблицы делается выборка нужных данных
2. Возвращает на страницу с формой то, что выбрали из БД в виде таблицы -->
<script>
	$(function() {
	$('#Form1 input[type="submit"]').click(function(e) {
		e.preventDefault();
		var $data;
		$data = $(this).parent('form').serialize();
		$.ajax({
			url: $(this).parent('form').attr('action'),
			type: 'post',
			data: $data,
			success: function(result) {
				$('#tbl_result').html(result);
			}
		})
	});
	});
</script>
	</body>
</html>
Теперь я пытаюсь ввести новые показания, но так и не знаю как данные следующих инпутов передать в другой php-файл, а именно в calk_insert.php

Код:
<!DOCTYPE html>
<html>
	<head>
		<title>Ввод данных в БД</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" type="text/css" href="scripts/style.css"/>
		<!--script src="http://code.jquery.com/jquery-latest.js"></script-->
		<!-- Это свой jQuery - Работает! Т.е. можно работать без интернета!-->
		<script src="http://localhost/phpMyAdmin/js/jquery/jquery-1.11.1.min.js"></script>
		
	</head>
	<body>
	<div class="wrapper" style="clear:both"> <!-- wrapper по-английски - обертка-->
		<div class="left_block" style="clear:both"> <!-- Это для выбора таблицы -->
		<form id="Form1" action="scripts/data_previous.php" novalidate>
	<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>

		</div> <!-- class="left_block" -->
		<div class="right_block" style="clear:both"> <!-- Это для таблицы с результатом -->
			<p><u>Предыдущие показания</u></p> 
			<!-- Область для вывода результата: -->
			<div id="tbl_result"></div>
		</div> <!-- class="right_block" -->

		<!-- Ввод новых данных -->
		<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="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>
	</div> <!-- class="wrapper" -->
	
<script>
	$(function() {
	$('#Form1 input[type="submit"]').click(function(e) {
		e.preventDefault();
		var $data;
		$data = $(this).parent('form').serialize();
		$.ajax({
			url: $(this).parent('form').attr('action'),
			type: 'post',
			data: $data,
			success: function(result) {
				$('#tbl_result').html(result);
			}
		})
	});
	});
</script>

	</body>
</html>
Где мне этот URL прописать?
Я пытался сделать это двумя формами:

Код:
<!DOCTYPE html>
<html>
	<head>
		<title>Ввод данных в БД</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" type="text/css" href="scripts/style.css"/>
		<!--script src="http://code.jquery.com/jquery-latest.js"></script-->
		<!-- Это свой jQuery - Работает! Т.е. можно работать без интернета!-->
		<script src="http://localhost/phpMyAdmin/js/jquery/jquery-1.11.1.min.js"></script>
		
	</head>
	<body>
	<div class="wrapper" style="clear:both"> <!-- wrapper по-английски - обертка-->
		<div class="left_block" style="clear:both"> <!-- Это для выбора таблицы -->
		<form id="Form1" action="scripts/data_previous.php" novalidate> 				<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>

		</div> <!-- class="left_block" -->
		<div class="right_block" style="clear:both"> <!-- Это для таблицы с результатом -->
			<p><u>Предыдущие показания</u></p> 
			<!-- Область для вывода результата: -->
			<div id="tbl_result"></div>
		</div> <!-- class="right_block" -->
	</div> <!-- class="wrapper" -->
	
		<!-- Ввод новых данных -->
		<form id="Form2" action="scripts/calk_insert.php" novalidate>
		<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="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>

	
<script>
	$(function() {
	$('#Form1 input[type="submit"]').click(function(e) {
		e.preventDefault();
		var $data;
		$data = $(this).parent('form').serialize();
		$.ajax({
			url: $(this).parent('form').attr('action'),
			type: 'post',
			data: $data,
			success: function(result) {
				$('#tbl_result').html(result);
			}
		})
	});
	});
</script>

	</body>
</html>
Но и это не работает!

Всё упирается в то, что я не знаю как из одной, или из двух форм на одной HTML-странице отравить данные в два разных URL

Последний раз редактировалось Nikolaй; 06.06.2019 в 04:48.
Nikolaй вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка с полем для ввода 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 08:47