Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Печать данных из формы в 3 колонки (https://javascript.ru/forum/dom-window/41775-pechat-dannykh-iz-formy-v-3-kolonki.html)

Denny 28.09.2013 23:43

Печать данных из формы в 3 колонки
 
Доброго времени суток! Подскажите пожалуйста, как лучше организовать вывод данных из формы в 3 колонки?
Я реализовал вывод данных, но они выводятся единоразово, и затем заменяються на новые.

Исходный код:

<form action="" onsubmit="FA(this.name);return false;","" method="post" name="fm" id="fm" >
.....
</form>
<span id="paste"></span>



function FA()
{
      var len=document.fm.elements.length-1;  //length-1, потому что кнопка считается за элемент и мы ее отбрасываем.
      var mas=[];  // создаем массив к торый собственно и будем заполнять
      var paste=document.getElementById('paste'); 
        for(var i=0;i<len;i++)
        {
            var val=document.fm.elements[i].value;
                if (val!=0 && val!=undefined && val!=null)
                { // дабы не забивать массив не определенными значениями мы делаем проверку на передаваемое значение;
                mas.push(val);       // работаем с массивом как со стеком
                }
        }
      paste.innerHTML=mas; // ну и вывод массива
}

ksa 29.09.2013 00:06

Цитата:

Сообщение от Denny
как лучше организовать вывод данных из формы в 3 колонки?

1. У тебя нет таблицы, какие колонки?
2. Зачем тебе массив mas, ели нужен только вывод?

Denny 29.09.2013 09:48

1. Мне нужно выводить значение из 3ех полей: Имя, е-мейл, и текст. Поэтому я считываю их в масив.
2. По поводу вывода и был вопрос, создать таблицу с тремя колонками не проблема, а вот как организовать вывод каждого нового значения в новую колонку.

ksa 29.09.2013 10:30

Цитата:

Сообщение от Denny
Мне нужно выводить значение из 3ех полей: Имя, е-мейл, и текст. Поэтому я считываю их в масив.

Тогда могу утверждать, что для вывода не нужно считывать в массив.

Цитата:

Сообщение от Denny
По поводу вывода и был вопрос, создать таблицу с тремя колонками не проблема, а вот как организовать вывод каждого нового значения в новую колонку.

Если создать таблицу с тремя колонками для тебя не проблема, тогда вообще не понятно что мешает тебе ее заполнить значениями... :blink:
Первое пиши в первую колонку... Второе во вторую, а третье в третью...

Denny 29.09.2013 10:43

Дело в том, что мне не удается разобраться, как это организовать. Таким кодом, я описываю страницу:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Доска пожеланий</title>
			<script language="JavaScript" src="FA.js" type="text/javascript"></script>
			<script type="text/javascript">
					var ok1=false
						function test(form)
							{
							 if (form.Name.value == "") 
							 {
							  ok1=false
					  			alert("Введите имя!")
							 }
							 else
							 if(form.Name.value.length <= 3)
							 {
							 	ok1=false
                  				 alert("длина текста < 3");
                  			}
                  			 else
                  			 if (form.wi.value == "") 
							 {
					  		 ok1=false
					  	alert("Wishes is empty!")
							 }
							 else ok1=true
							}
					</script>
					
		<link type="text/css" rel="stylesheet" href="style.css">
</head>
<body>
	<header><h1>Board for wishes</h1></header>
		<h4>Add your wish</h4>
			<form action="" onsubmit="FA();" method="post" name="fm" id="fm" >
				<p>
    				<label for='Name'>Name:</label>
    				<input type="text" id="Name" name="Name" onkeydown="javascript:return ((event.keyCode>64)&&(event.keyCode<91))">
				</p>
				<p>
	    			<label for='EMail'>EMail:</label>
	    			<input type="email" id="EMail" name="EMail" >
				</p>
				<p>
					<label for='txt'>Your wish:</label>
	    			<textarea name="wi" cols="30" raws="10" wrap="virtual" ></textarea>
				</p>
				<p>
	    			<input type="submit" name="Send" value="send" onclick="test(fm)">
	    		</p>
			</form>
<span id="paste"></span>

		
</body>
</html>

А таким, пытаюсь заносить в таблицу данные
function FA() 
{
 var len=document.fm.elements.length-1;
 var mas=[];
 var paste=document.getElementById('paste'); 
 		cod="<table width=100%><tr>"; // КОД ДЛЯ ЗАПИСИ В paste
			 for(var i=0;i<len;i++)
			  {
 				 var val=document.fm.elements[i].value;
  					if (val!=0 && val!=undefined && val!=null)
  					 {
  			 mas.push(val);
  			 cod.="<td>".val."</td>";
			 		 }
			  }
			 cod.="</tr></table>";
			 paste.innerHTML=cod; // отображение массива колонками
}

Буду благодарен, за любую помощь.

ksa 29.09.2013 10:48

Цитата:

Сообщение от Denny
cod.="<td>".val."</td>";

Это что за действо? :blink:

Denny 29.09.2013 10:59

таким образом, я намеревался занести значения в таблицу.

ksa 29.09.2013 11:28

Denny, это что за операции? Откуда ты их взял? Что они делают? :)

Denny 29.09.2013 11:47

Мне их посоветовали на одном из интернет-ресурсов. Изначально код имел вид:
function FA(){
   
   
    var len=document.fm.elements.length-1;  //length-1, потому что кнопка считается за элемент и мы ее отбрасываем.
      var mas=[];  // создаем массив к торый собственно и будем заполнять
      var paste=document.getElementById('paste'); 
      for(var i=0;i<len;i++){
       var val=document.fm.elements[i].value;
         if (val!=0 && val!=undefined && val!=null){ // дабы не забивать массив не определенными значениями мы делаем проверку на передаваемое значение;
         mas.push(val);       // работаем с массивом как со стеком
       }
       
      }
     paste.innerHTML=mas; // ну и вывод массива
 }

но при этом, все значения из полей выводились единоразово, а при попытке добавить новую запись, она перезаписывалась, вместо старой.

Я задал вопрос, о выводе данных в 3 колонки, и мне порекомендовали вот так править вышеуказанный код:
function FA() 
{
 var len=document.fm.elements.length-1;
 var mas=[];
 var paste=document.getElementById('paste'); 
 		cod="<table width=100%><tr>"; // КОД ДЛЯ ЗАПИСИ В paste
			 for(var i=0;i<len;i++)
			  {
 				 var val=document.fm.elements[i].value;
  					if (val!=0 && val!=undefined && val!=null)
  					 {
  			 mas.push(val);
  			 cod.="<td>".val."</td>";
			 		 }
			  }
			 cod.="</tr></table>";
			 paste.innerHTML=cod; // отображение массива колонками
}

Denny 29.09.2013 11:48

Мои познания в javascript лишь поверхностны, поэтому я надеюсь на помощь форумчан, на разных интернет-ресурсах.


Часовой пояс GMT +3, время: 01:35.