Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2013, 16:46
Интересующийся
Отправить личное сообщение для Hisot Посмотреть профиль Найти все сообщения от Hisot
 
Регистрация: 10.07.2013
Сообщений: 16

Заполнение таблицы
Всем привет помогите реализовать заполнение таблицы. Уже который день сижу и ломаю голову как это сделать. С js знаком мало.
Проблема:
В бд есть таблица содержащая занятые места в зале (ряд и место). Надо эти места взять и перенести на jsp-страницу. На jsp есть картинка со схемой зала. Поверх картинки рисуется таблица в ячейки которой вставляются картинки обозначающие занятое (красный крест) или свободное место (просто прозрачная картинка).
В общем как уже говорил надо показать какие места заняты. Пытался сделать без js, но не получается позиционироваться в таблице. Поэтому прошу помощи тут.
Вот пример того, как это должно выглядеть:
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2013, 16:52
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

а вопрос в чём?)
Сообщение от Hisot
не получается позиционироваться в таблице
её можно строить на js попутно отмечая занята ли ячейка (место)
Ответить с цитированием
  #3 (permalink)  
Старый 10.07.2013, 17:01
Интересующийся
Отправить личное сообщение для Hisot Посмотреть профиль Найти все сообщения от Hisot
 
Регистрация: 10.07.2013
Сообщений: 16

Сообщение от animhotep Посмотреть сообщение
а вопрос в чём?)

её можно строить на js попутно отмечая занята ли ячейка (место)
Ну вот как её строить мне и надо понять. Дело даже не в построении, а скорее в условиях при заполнении данными.
Я сейчас пытаюсь построить таблицу и заполнить её на основании вот этой статьи - https://developer.mozilla.org/en-US/...M_I nterfaces
но что-то не получается сделать так, чтоб если место занято, то выдавало одно, а если свободно, то другое=(
Ответить с цитированием
  #4 (permalink)  
Старый 10.07.2013, 17:40
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

хороший пример по ссылке, а данные о том занято ли место у вас в каком виде
можете передать их в виде масива? например
0,0,0,1,1
0,1,1,0,1
Ответить с цитированием
  #5 (permalink)  
Старый 10.07.2013, 17:53
Интересующийся
Отправить личное сообщение для Hisot Посмотреть профиль Найти все сообщения от Hisot
 
Регистрация: 10.07.2013
Сообщений: 16

Сообщение от animhotep Посмотреть сообщение
хороший пример по ссылке, а данные о том занято ли место у вас в каком виде
можете передать их в виде масива? например
0,0,0,1,1
0,1,1,0,1
на картинке в первом посте они показаны, т.е. в бд они хранятся в виде двух полей row и place. Потом из бд считываю всё в коллекцию, сортирую её и передаю на jsp.
Это же какой массив получится. уж слишком громадный

Кстати как уже на jsp когда я пишу скрипт мне в него закинуть свою коллекцию?
И как сделать так чтоб функция отрабатывала сразу же, а не по нажатию на кнопку (как примере по ссылке выше)

Последний раз редактировалось Hisot, 10.07.2013 в 17:56.
Ответить с цитированием
  #6 (permalink)  
Старый 10.07.2013, 18:04
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

так а что ты передаёшь в шаблон если не массив? приведи пару строк
чтоб отработала сразу - просто ставишь скрипт в конце страници, перед </body>
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2013, 18:11
Интересующийся
Отправить личное сообщение для Hisot Посмотреть профиль Найти все сообщения от Hisot
 
Регистрация: 10.07.2013
Сообщений: 16

Сообщение от animhotep Посмотреть сообщение
так а что ты передаёшь в шаблон если не массив? приведи пару строк
чтоб отработала сразу - просто ставишь скрипт в конце страници, перед </body>
у меня сейчас такой код:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="by.gsu.epamlab.Constants" %>
<%@page import="org.json.simple.JSONObject"%>
  
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF8">
		<title>Tickets ordered</title>
		<script>
			function generate_table(places){
				var rows = 7; 
				var cells = 10;
				var body = document.getElementsByTagName("body")[0];
				var table     = document.createElement("table");
				var tableBody = document.createElement("tbody");
				for (var j = 0; j < rows; j++) {
    				var row = document.createElement("tr");
    				for (var i = 0; i < cells; i++) {
        				var cell = document.createElement("td");
        				for (var p=0; p<places.size; p++) {
        					var cellText = document.createTextNode("Row: " + j + ", Place: " + i);
        					cell.appendChild(cellText);
       						row.appendChild(cell);
        				}
    				}
    				tableBody.appendChild(row);
				}
				table.appendChild(tableBody);
				body.appendChild(table);
			}
		</script>
	</head>
	<body>
		<c:if test="${not empty errorMessage}">
			<c:out value="${errorMessage}"/>
		<hr>
		</c:if>
		<%@ include file="header.jsp" %><br>
		<%@ include file="headerOrder.jsp" %><br><br>
		<c:choose>
			<c:when test="${empty user}">
				Your status Guest, please <a href="<c:url value='/login'/>">Sign in</a>. ${id}<br>
				<img name = 'place' src = 'hallplan.jpg' />
			</c:when>
			<c:otherwise>
			<c:set var="space" value="&emsp;"/>
			<c:set var="cancel" value="<img src='cancel.png'>"/>
			<c:set var="free" value="<img src='free.png'>"/>
			There will be order ${user.name}<br>
						
			<div style="background: url(hallplan.jpg) no-repeat top left;">
			<br><br><br>
				<div style="margin-left: 55px">
					<input type="button" value="Generate a table." onclick="generate_table(${places})">
				</div>	
			</div>
			
			row place<br>
			<c:forEach var="places" items="${places}">
				${places.row} ${space} ${places.place}<br>
			</c:forEach>
		</c:otherwise>
		</c:choose>
	</body>
</html>

а передаю я коллекцию такой структуры:
Код:
	private int id;
	private int row;
	private int place;
	private int categoryId;
	private int playId;
	private int dateId;
Ответить с цитированием
  #8 (permalink)  
Старый 10.07.2013, 18:19
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

не всё понимаю в там коде, но попробуй так
замени циклы js на циклы jsp то есть перед </body> выводишь чтот типа
<script>
 <c:forEach  items="${row}">//перебираем ряды
 var row = document.createElement("tr");
   <c:forEach  items="${place}">//перебираем ячейки
   var cell = document.createElement("td");

   var cellText = document.createTextNode(выводим значение занято/нет);
   cell.appendChild(cellText);
   row.appendChild(cell);

ну итд, по аналогии
Ответить с цитированием
  #9 (permalink)  
Старый 10.07.2013, 18:40
Интересующийся
Отправить личное сообщение для Hisot Посмотреть профиль Найти все сообщения от Hisot
 
Регистрация: 10.07.2013
Сообщений: 16

Сообщение от animhotep Посмотреть сообщение
не всё понимаю в там коде, но попробуй так
замени циклы js на циклы jsp то есть перед </body> выводишь чтот типа
<script>
 <c:forEach  items="${row}">//перебираем ряды
 var row = document.createElement("tr");
   <c:forEach  items="${place}">//перебираем ячейки
   var cell = document.createElement("td");

   var cellText = document.createTextNode(выводим значение занято/нет);
   cell.appendChild(cellText);
   row.appendChild(cell);

ну итд, по аналогии
У меня таблицу выводит только если я ничего не трогаю от исходного кода=(
<script>
	function generate_table(){
		var rows = 7; 
		var cells = 10;
		var body = document.getElementsByTagName("body")[0];
		var table     = document.createElement("table");
		var tableBody = document.createElement("tbody");
		for (var j = 0; j < rows; j++) {
    			var row = document.createElement("tr");
    				for (var i = 0; i < cells; i++) {
        				var cell = document.createElement("td");
        				var cellText = document.createTextNode("Row: " + j + ", Place: " + i);
        				cell.appendChild(cellText);
       					row.appendChild(cell);
    				}
    			tableBody.appendChild(row);
		}
		table.appendChild(tableBody);
		body.appendChild(table);
	}
</script>

Стоит мне прописать что-то как уже таблицу не выводит
Я не могу понять как мне внутри этого скрипта работать с коллекцией
Ответить с цитированием
  #10 (permalink)  
Старый 10.07.2013, 18:42
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

чёт я туплю под вечер. а зачем тебе аобще js там же всё в переменных шаблона есть
делай таблицу средствами jsp да и всё
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение таблицы на JavaScript freeze123 Opera, Safari и др. 4 08.04.2013 09:42
заполнение comboBox из sql таблицы ynijar ExtJS 2 18.02.2013 22:47
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Заполнение таблицы с помощью AJAX x][x AJAX и COMET 11 08.05.2009 19:58
Фиксированный заголовок таблицы ilshat Элементы интерфейса 6 20.12.2008 00:35