|
|
|
| Доброе утро всем, заранее всем хорошего дня и так далее!
Представте себе на ОДНОЙ странице 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>
|
Ввести туда всё, закрыть на странице и открыть второе поле так же заполнить потом отправить всё в обработчик, а то ужасно неудобно как становится когда их много полей этих!!! | |
|
|
|
|
|
|
|
для: Panker
(17.02.2007 в 07:44)
| | Во-первых, IE при больше около 100 инпутов-чекбоксов начинает глючить с их отображением. Во-вторых, открывание слоя с инпутами ничем не отличается от простого открывания слоя.
Третье - при таком огромном количестве полей есть риск поломки браузера и потери данных. Поэтому вводить надо по частям и тут же отправлять на сервер. Так и задумано, правильно, только возникает следующая незадача: код сановится сложным, и вряд ли кто найдётся сделать это здесь на энтузиазме. Учите XMLHttpRequest и скрипт к нему, потом проектирование страницы - и дело в шляпе. | |
|
|
|
|
|
|
|
для: 12345
(17.02.2007 в 18:02)
| | улыбнуло: "есть риск поломки браузера".
Как, интересно, выглядит "поломанный браузер"? :-) | |
|
|
|
|
|
|
|
для: CNT
(17.02.2007 в 20:10)
| | любознательные могут запустить у себя бесконечный цикл кпримеру... | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: 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 ()">
<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-скриптом)... но всё это - за отдельную плату... и дорого :-) | |
|
|
|
|
|
|
|
для: CNT
(18.02.2007 в 01:19)
| | Глюки при большом количестве чекбоксов возникали визуальные - искажалась страница при просмотре, отчего нельзя было правильно с ней работать. Может быть последние версии IE6 исправлены, но он довльно долго этим славился. Попадёшь в какие-то огромные анкеты - глюки.
Под поломкой браузера имел в виду элементарный сбой питания компьютера или ОС (некачественное ОЗУ, вполне бывает), из-за чего у пользователя потеряются все данные, которые он усердно вводил и не успел отправить. Поэтому лучше не изобретать такие рискованные страницы. Поставьте задачу по-другому. Пусть количество полей не поражает воображение, зато будет работать. | |
|
|
|