Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление строк, + строка добавлена, + еще одна... 
:(
    Опции темы
PARROT
Дата 20.5.2005, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Мне сегодня показали классную штуку, но скриптину не дали...
Конечно толка бы от этого действия не было, но очень хочется узнать все же, как делается такая штука:
Есть набор заполненных данными строк.
А внизу нарисован +.
Этот плюсик добавляет новую строку и так до бесконечности...

Нужна такая фича для базы, добавляешь новую запись в базу, записываешь в новую, добавленную плюсиком строку (<input type=text> их может быть 5, или больше...) и сохраняешь...

Хотелось бы пример и подробное объяснение.

Очень надо.

Спасибо!


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Aliance
Дата 20.5.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Каких строк?
Строковых данных или строк текста?
PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 20.5.2005, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Из базы загружаются данные в input для редактирования данных:
Код

<table>
//тут цикл на вывод всех строк из базы
{
//печатаем
<tr>
<td><input type=text name=mail[".$mis[0]."] value='$mis[1]'></td>
<td><input type=text name=name[".$mis[0]."] value='$mis[2]'></td>
<td><input type=text name=site[".$mis[0]."] value='$mis[3]'></td>
<td><input type=text name=adress[".$mis[0]."] value='$mis[4]'></td>
<td><input type=text name=fax[".$mis[0]."] value='$mis[5]'></td>
</tr>
//конец цикла
}
</table>
//добавление строк- добавление пустых input для заполнения




--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Aliance
Дата 20.5.2005, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Грубо говоря так: у тебя внизу всего этого есть ссылка. На нее кликаем и у тебя в конец ( перед закрывающим </tr> ) добавляется такое
Цитата
<td><input type=text name=fax[".$mis[0]."] value='$mis[n]'></td>

где n = предыдущее +1. Так?

Это сообщение отредактировал(а) Aliance - 20.5.2005, 23:08
PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 20.5.2005, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Наверно smile
У меня туго с яваскрипт, при всем большом желании, не очень он до меня доходит. smile
В принципе поняла.
Но нам еще нужно сгенирировать эти input в скрипте...
Не..... не получается с
Код
   
<td><input type=text name=fax[".$mis[0]."] value='$mis[n]'></td>

с n+, потому как значение это value , берется из базы, оно не может быть + еще 1, так как в базе всего 5 полей!
Нужно как-то с другой стороны подходить.
имя и значение должны остаться прежними.

Это сообщение отредактировал(а) PARROT - 20.5.2005, 23:21


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Sardar
Дата 20.5.2005, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Много раз вопрос поднимался, хотя бы здесь: http://forum.vingrad.ru/index.php?showtopic=46735


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
PARROT
Дата 20.5.2005, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Эх... smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
korob2001
Дата 20.5.2005, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



smile А я думал PARROT не это имела ввиду.

Это сообщение отредактировал(а) korob2001 - 20.5.2005, 23:40


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Aliance
Дата 20.5.2005, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



PARROT
Объясни мне: если полей дано 5. В данный момент их 5. Их может быть максимально 5. То зачем еще добавлять... и главное как? =) name и value другими должны быть чтоли?

ЗЫ: с n это я пример привел, так сказать алгоритм, т.к. не понял твою постановку вопроса.
PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 20.5.2005, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



5 полей с данными в базе - грузяться в 5 инпутов где name=имя для редактирования по номеру записи, а value=данные грузящиеся из базы по номеру полей.</tr>
Сколько id в базе, столько строк будет, состоящих из 5 инпутов.
При редактировании в базу заносятся поля по name cоответ. номеру записи+ все это в массиве.
Добавлено @ 23:58
Цитата(Aliance @ 21.5.2005, 00:44)
ЗЫ: с n это я пример привел, так сказать алгоритм, т.к. не понял твою постановку вопроса.

Пример с n, это тоже пример! Я его поняла, смысл. Любой пример приветствуется, как пример! smile
Надеюсь МЫ! докопаемся до истины. И мне будет чем похвастаться: Любимым Форумом smile
И результатами... smile

Это сообщение отредактировал(а) PARROT - 21.5.2005, 00:03


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Aliance
Дата 21.5.2005, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



PARROT
Окей, напишу. Уточняю. Покажи для примера то, что должныв получить.
Исходная разметка такая:
Код

<tr>
<td><input type=text name=mail[".$mis[0]."] value='$mis[1]'></td>
<td><input type=text name=name[".$mis[0]."] value='$mis[2]'></td>
<td><input type=text name=site[".$mis[0]."] value='$mis[3]'></td>
<td><input type=text name=adress[".$mis[0]."] value='$mis[4]'></td>
<td><input type=text name=fax[".$mis[0]."] value='$mis[5]'></td>
</tr>

А получить мы должны такое же, но с другими именами и значениями - какими? С ...[+1], так?
PM MAIL WWW ICQ Skype   Вверх
PARROT
Дата 21.5.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Aliance, вот это одна строка:
Цитата(Aliance @ 21.5.2005, 15:18)
Код

<tr>
<td><input type=text name=mail[".$mis[0]."] value='$mis[1]'></td>
<td><input type=text name=name[".$mis[0]."] value='$mis[2]'></td>
<td><input type=text name=site[".$mis[0]."] value='$mis[3]'></td>
<td><input type=text name=adress[".$mis[0]."] value='$mis[4]'></td>
<td><input type=text name=fax[".$mis[0]."] value='$mis[5]'></td>
</tr>


Таких строк может быть столько, сколько строк занесено в базе.
Получить мы должны новую строку, но не заполненую, с пустыми input, но с теми же именами без, наверно без значений, без value.

То есть при нажатии на плюс, мы добавляем новую строку:
Код

<tr>
<td><input type=text name=mail></td>
<td><input type=text name=name></td>
<td><input type=text name=site></td>
<td><input type=text name=adress></td>
<td><input type=text name=fax></td>
</tr>

То есть заполнив эти строки и изменив вышестоящие, нажав кнопку, мы редактируем базу.
Может загнать новую строку в переменную:
Код

$string="<tr>
<td><input type=text name=mail></td>
<td><input type=text name=name></td>
<td><input type=text name=site></td>
<td><input type=text name=adress></td>
<td><input type=text name=fax></td>
</tr>";
$string++;

В яваскрипте я НУЛЬ smile

Это сообщение отредактировал(а) PARROT - 21.5.2005, 15:07


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
PARROT
Дата 21.5.2005, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Вот то что мне надо было. Сперла у того, кто хвалился скриптом, правда пришлось немного повозиться, потому как там не только этот код был.
Теперь вопрос такой, как его видоизменить до неузнаваемости? Узнают ...пых... и нет меня.
Код

<html>
<head>
<script>
var JSidx;
<? if ($t_num>0) echo "JSidx=".$t_num.";"; else echo "JSidx=0;";?>

function JSadd() {
var txt, k, z, rows_f;
    JSidx++;
    rows_f=spisok.rows.length-1;
    z=rows_f;
    txt = ["<td valign=middle align=center >"+z+"</td>","<td align=center><table width=100% cellpadding=0 cellspacing=0><tr align=center><td></td></tr></table></td>","<td valign=middle><input type=text name=naim["+JSidx+"] value='' style='font-size: 10px; width: 100%; border-color: #C0C0C0; border: solid 1 px'></td>","<td valign=middle align=center><input type=text name=edizm["+JSidx+"] value='' style='font-size: 10px; border-color: #C0C0C0; width: 70%; border: solid 1 px'></td>","<td align=right><input type=text name=price["+JSidx+"] value='' style='font-size: 10px; border-color: #C0C0C0; width: 70%; border: solid 1 px'> <input type=text name=currency["+JSidx+"] value='' style='font-size: 10px; border-color: #C0C0C0; width: 16%; border: solid 1 px'></td>"];
    spisok.insertRow(rows_f);
    spisok.rows(rows_f).bgColor="#FFFFFF";
    for (k=0;k<txt.length;k++) {
        spisok.rows(rows_f).insertCell(k);
        spisok.rows(rows_f).cells(k).innerHTML=txt[k];
        if (k==4) spisok.rows(rows_f).cells(k).align="right";
    }
    spisok.rows(rows_f).align="center";
}
</script>
</head>
<body>
<table id=spisok cellpadding=2 cellspacing=1 width=100%>
                            <tr bgcolor=#DDDDDD align=center>
                                <td width=5% class=catalog>№ п/п</td>
                                <td width=5% class=catalog>Выбор</td>
                                <td width=70% class=catalog>Наименование</td>
                                <td width=5% class=catalog>Ед.изм</td>
                                <td width=15% class=catalog>Цена c НДС</td>
                            </tr>

<td align=center><a href="javascript:JSadd()" style="font: 20px"><b>+</b></a></td>
</body>
</html>



Это сообщение отредактировал(а) PARROT - 21.5.2005, 15:52


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Sardar
Дата 21.5.2005, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Только теперь вроде доходит что тебе нужно smile
Смотрим такой код:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script type="text/javascript">
<!--
/**
* Добавит  строку к таблице. Параметрами передаём ссылку на кнопку(что угодно что лежит в <td>
* index указывает на строку в таблице, стили(className) с которой мы скопируем в новую строку, дабы по виду она не отличалась
* по умолчанию 0 - первая строка.
*/
function addRow(but, index) {
  if(!but) return;
  var p=but.parentNode, mr=but.parentNode, rclone, rsource;
  //найдём строку с кнопкой, перед ней вставим новую
  while(mr&&mr.nodeType==1&&mr.tagName.toUpperCase()!="TR") mr=mr.parentNode;
  //найдём родительскую таблицу
  while(p&&p.nodeType==1&&p.tagName.toUpperCase()!="TABLE") p=p.parentNode;
  rsource=p.rows[index||0]; //возьмём сорец для стилей
  rclone=p.insertRow(mr.rowIndex); //новая строка
  //содержание новой строки
  var row=["<input type='text' name='mail' />","<input type='text' name='name' />","<input type='text' name='site' />","<input type='text' name='adress' />","<input type='text' name='fax' />"];
  for(var i=0; i<rsource.cells.length; i++) {
    var c=rclone.insertCell(i);
    c.innerHTML=row[i]; //кидаем в ячейку инфу
    if(rsource) c.className=rsource.cells[i].className; //устанавливаем стили как у всех
  }
}

//-->
</script>

</head>
<body>
<table border="1">
<tr>
  <td><input type='text' name='mail[1]' value='val1' /></td>
  <td><input type='text' name='name[1]' value='val2' /></td>
  <td><input type='text' name='site[1]' value='val3' /></td>
  <td><input type='text' name='adress[1]' value='val4' /></td>
  <td><input type='text' name='fax[1]' value='val5' /></td>
</tr>
<tr class="button"><td colspan="5" align="center"><button onclick="addRow(this)">Добавить строку</button></td></tr>
</table>
</body>
</html>

Как видим код может работать сразу с несколькими таблицами на странице. Стили ячейкам лучше задавать классами, тогда они будут копироваться в новых ячейках.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
PARROT
Дата 21.5.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Супер!
Спасибо, Sardar!
и Aliance, спасибо!



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0615 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.