Печать данных из формы в 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; // ну и вывод массива
}
|
Цитата:
2. Зачем тебе массив mas, ели нужен только вывод? |
1. Мне нужно выводить значение из 3ех полей: Имя, е-мейл, и текст. Поэтому я считываю их в масив.
2. По поводу вывода и был вопрос, создать таблицу с тремя колонками не проблема, а вот как организовать вывод каждого нового значения в новую колонку. |
Цитата:
Цитата:
Первое пиши в первую колонку... Второе во вторую, а третье в третью... |
Дело в том, что мне не удается разобраться, как это организовать. Таким кодом, я описываю страницу:
<!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; // отображение массива колонками
}
Буду благодарен, за любую помощь. |
Цитата:
|
таким образом, я намеревался занести значения в таблицу.
|
Denny, это что за операции? Откуда ты их взял? Что они делают? :)
|
Мне их посоветовали на одном из интернет-ресурсов. Изначально код имел вид:
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; // отображение массива колонками
}
|
Мои познания в javascript лишь поверхностны, поэтому я надеюсь на помощь форумчан, на разных интернет-ресурсах.
|
Denny, вот что есть в JS
http://javascript.ru/assignment-operators http://javascript.ru/string-operators А это Цитата:
|
А как бы вы выполнили заданное условие? И какова, на ваш взгляд, была бы правильная запись?
Я исправил, согласно справочным данным, вышеуказанный код, но результата это не принесло.
function FA()
{
var len=document.fm.elements.length-1;
var mas=[];
var paste=document.getElementById('paste');
var 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; // отображение массива колонками
}
|
Цитата:
|
тогда, получается и cod="<table width=100%><tr>"; а так же и cod="</tr></table>"; ошибки?
|
Цитата:
Но хоть не синтаксические... |
Цитата:
cod+="<td>"+val+"</td>"; cod+="</tr></table>"; Честно говоря, не вникал в Ваш код, но вот так может будет понятнее:
for (var i = 0; i < strings.length; i++) {
str += '<tr><td>' + valNameI + '</td><td>' + valEmailI + '</td><td>' + valTextI + '</td></tr>';
}
document.getElementById('paste').innerHTML = '<table><tr><td>Имя</td><td>е-мейл</td><td>текст</td></tr>' + str + '</table>';
|
| Часовой пояс GMT +3, время: 19:52. |