Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Несколько textarea и input нужно сделать выпадающими ( простая задача ) но я не знаю JS

Сообщения:  [1-7] 

 
 автор: 12345   (19.02.2007 в 12:30)   письмо автору
 
   для: CNT   (18.02.2007 в 01:19)
 

Глюки при большом количестве чекбоксов возникали визуальные - искажалась страница при просмотре, отчего нельзя было правильно с ней работать. Может быть последние версии IE6 исправлены, но он довльно долго этим славился. Попадёшь в какие-то огромные анкеты - глюки.

Под поломкой браузера имел в виду элементарный сбой питания компьютера или ОС (некачественное ОЗУ, вполне бывает), из-за чего у пользователя потеряются все данные, которые он усердно вводил и не успел отправить. Поэтому лучше не изобретать такие рискованные страницы. Поставьте задачу по-другому. Пусть количество полей не поражает воображение, зато будет работать.

   
 
 автор: CNT   (18.02.2007 в 01:19)   письмо автору
 
   для: Panker   (17.02.2007 в 07:44)
 

<html><head>
<script>
var Z = 0;
function _func ()
{
var a = document.all._dv.all ['_tb' + Z].cloneNode (1);
var re = new RegExp (Z, "i");
a.id = '_tb' + (Z + 1);
for (var obj = a.all.tags ('input'), j = 0; j < obj.length; j++)
with (obj [j])
   {
   name = name.replace (re, (Z + 1));
   value = "";
   if (name.indexOf ('name') == 0) value = '.html';
   if (name.indexOf ('id') == 0) value = (Z + 1);
   }
with (a.all.tags ('textarea') [0])
   {
   name = name.replace (re, (Z + 1));
   value = "";
   }
document.all._dv.appendChild (a);
document.all ['_tb' + Z].style.display = 'none';
Z++;
}
</script>
</head><body>
<form method="post">
<div id="_dv">
<table align="center" id="_tb0" bgcolor="#f0f0f0" style="border: 1 solid gray" cellpadding="4" cellspacing="0">
<col span="1" style="text-align: right">

<tr><th>#:
<td><input name="id0" value="0" size="4">

<td rowspan="5" style="padding-left: 10; border-left: 1 solid gray">
<textarea name="pages0" cols="60" rows="9"></textarea>

<tr><th>Domain:
<td><input name="domen0" value=""><input name="name0" size="5" value=".html">

<tr><th>Title:
<td><input name="title0" value="">

<tr><th>Keywords:
<td><input name="keywords0" value="">

<tr><th>Description:
<td><input name="description0" value="">

</table>
</div>

<center style="margin-top: 20">
<input style="width: 100" type="button" value="Next" onclick="_func ()">&nbsp;
<input style="width: 100" type="submit" value="Send" onclick="return (confirm ('OK?'))">
</center>
</form>
</body></html>

Протестировано (в автоматическом режиме, разумеется) для Z=0...1111 (от нуля до одной тысячи сто одиннадцати). Проблем не возникло ни в браузере при заполнении полей, ни при передаче perl-скрипту, указанному в action формы: все значения всех 7784 полей были переданы без искажений.

PS. Разумеется, можно добавить проверку каждого набора полей перед переходом к следующему; можно реализовать кнопку "Previous" (или вообще переход на любой ранее заполненный набор); можно сделать автозаполнение некоторых полей (из массива, прописанного PHP-скриптом)... но всё это - за отдельную плату... и дорого :-)

   
 
 автор: bronenos   (18.02.2007 в 00:33)   письмо автору
 
   для: 12345   (17.02.2007 в 18:02)
 

А мне кажется можно поставить так
<div id='input'></div>
<br>
<input type='button' onclick='add()'>
<script>
function add()
{
  document.getElementById('input').innerHTML += "<input type='text' name='list[]'>";
}
</script>

   
 
 автор: AlexSol   (17.02.2007 в 20:17)   письмо автору
 
   для: CNT   (17.02.2007 в 20:10)
 

любознательные могут запустить у себя бесконечный цикл кпримеру...

   
 
 автор: CNT   (17.02.2007 в 20:10)   письмо автору
 
   для: 12345   (17.02.2007 в 18:02)
 

улыбнуло: "есть риск поломки браузера".
Как, интересно, выглядит "поломанный браузер"? :-)

   
 
 автор: 12345   (17.02.2007 в 18:02)   письмо автору
 
   для: Panker   (17.02.2007 в 07:44)
 

Во-первых, IE при больше около 100 инпутов-чекбоксов начинает глючить с их отображением. Во-вторых, открывание слоя с инпутами ничем не отличается от простого открывания слоя.
Третье - при таком огромном количестве полей есть риск поломки браузера и потери данных. Поэтому вводить надо по частям и тут же отправлять на сервер. Так и задумано, правильно, только возникает следующая незадача: код сановится сложным, и вряд ли кто найдётся сделать это здесь на энтузиазме. Учите XMLHttpRequest и скрипт к нему, потом проектирование страницы - и дело в шляпе.

   
 
 автор: Panker   (17.02.2007 в 07:44)   письмо автору
 
 

Доброе утро всем, заранее всем хорошего дня и так далее!

Представте себе на ОДНОЙ странице 100 input и 100 textarea, ужас да?

У меня такой код, выводит динамически несколько полей!


<?
  $query 
"SELECT * FROM Domen"
  
$dmn mysql_query($query); 
  if(!
$dmn) exit(mysql_error()); 
  if(
mysql_num_rows($dmn)) 
  { 
     while(
$links mysql_fetch_array($dmn)) 
     { 
        echo 
"
        <input type=hidden name='id[]'>
        <input name='domen[]' value="
.$links['name'].">
        <input name='name[]' value=.html>
        <input name='title[]' value=title>
        <input name='keywords[]' value=keywords>
        <input name='description[]' value=description><br>
        <textarea name='pages[]' rows=5 cols=80>text</textarea><br><br>
        "
;
     } 
  } 
?>


Пожалуйста, помогите сделать так что бы была какая нить кнопка или как нить что бы можно было по одному полю открывать!
Допустим сначала для первого домена

        <input type=hidden name='id[]'>
        <input name='domen[]' value=".$links['name'].">
        <input name='name[]' value=.html>
        <input name='title[]' value=title>
        <input name='keywords[]' value=keywords>
        <input name='description[]' value=description><br>
        <textarea name='pages[]' rows=5 cols=80>text</textarea><br><br>


Ввести туда всё, закрыть на странице и открыть второе поле так же заполнить потом отправить всё в обработчик, а то ужасно неудобно как становится когда их много полей этих!!!

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования