X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Помогите разобраться с формой
sc2r2bey
sc2r2bey
Topic Starter сообщение 30.8.2009, 19:22; Ответить: sc2r2bey
Сообщение #1


есть форма
[php]
while ($material_select = mysql_fetch_assoc($material_query))
{
echo "<tr>
<td>".htmlspecialchars ( $material_select['material'] )."</td>
<td align=\"center\">".htmlspecialchars ( $material_select['price'] )."</td>
<td align=\"center\"><input type=\"text\" name=\"gramm[]\" size=\"2\" maxlength=\"2\" /></td>
<td align=\"center\"><input type=\"checkbox\" name=\"material[]\" value=\"".htmlspecialchars ( $material_select['id'] )."\" /></td>
</tr>";
}[/php]
т.е. количество полей изначально не определено, а зависит от количества записей в таблицы, так вот как сделать неактивными по умолчанию input type="text", а становятся они активными, только после того как поставят галочку в input type="checkbox"? спасибо!


--------------------
Заметки о разработке и не только
программирую web и для we
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
НЕПЛОХОЙ
НЕПЛОХОЙ
сообщение 31.8.2009, 5:49; Ответить: НЕПЛОХОЙ
Сообщение #2


sc2r2bey, большенство людей которые сидят в этом разделе могут не понять вставок на php.
Можно этот же пример только на практике (для конкретной задачи)? я чувствую что то что Вы хотите сделать надо делать другими способами :-)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 31.8.2009, 8:31; Ответить: sc2r2bey
Сообщение #3


я не совсем понял, что вы хотите, но попробую:

<form action="index.php" method="post" >
<tr>
<td>материал</td>
<td>цена</td>
<td><input type="text" name="gramm" size="2" maxlength="2" /></td>
<td><input type="checkbox" name="material" value="0" /></td>
</tr>
<input type="submit" value="далее" />
</form>


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Eugene_hb
Eugene_hb
сообщение 31.8.2009, 17:03; Ответить: Eugene_hb
Сообщение #4


Ну тогда как вариант еще - после Вашего цикла, выводящего форму, добавьте что-то типа
<script type="text/javascript">
   uncheck_all();
</script>

И, соответственно, в предварительно написанной функции uncheck_all() будет цикл по всем элементам формы. И в нем уже и будете смотреть, нужно ли элемент делать неактивным: галка стоит - ничего не трогаем, галки нет - делаем неактивным.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
xakki
xakki
сообщение 31.8.2009, 17:09; Ответить: xakki
Сообщение #5


jQuery в помощь.
Может так?
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Пример</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<meta http-equiv="Pragma" content="no-cache"/>
<script type="text/javascript" src="http://xakki.ru/test/jquery.js"></script>
<script type="text/javascript">
function fcheck(obj) {
trobj = $(obj).parent().parent();
if(obj.checked==true) {
$(trobj).clone().insertAfter(trobj);
$(trobj).find("td>input[type='text']").attr("disabled","");
$(trobj).next().find("td>input[type='checkbox']").attr("checked","");
}else if(trobj.parent().children().length>1){
$(trobj).next().remove();
$(trobj).find("td>input[type='text']").attr("disabled","disabled");
} else
$(trobj).find("td>input[type='text']").attr("disabled","disabled");
return true;
}
</script>
</head>
<body>
<form action="temp.html" method="post" >
<table cellspacing="1">
<tr>
<td>материал</td>
<td>цена</td>
<td><input type="text" name="gramm[]" size="2" maxlength="2" disabled="disabled"/></td>
<td><input type="checkbox" name="material[]" value="0" onchange="return fcheck(this);"/></td>
</tr>
</table>
<input type="submit" value="далее" />

</form>
</body>
</html>


Вот примерчик http://xakki.ru/test/temp1.html
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 31.8.2009, 17:48; Ответить: sc2r2bey
Сообщение #6


xakki, не так, мне не надо добавлять новые поля
мне просто надо делать активным поле при активации чекбокса!


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
xakki
xakki
сообщение 1.9.2009, 15:17; Ответить: xakki
Сообщение #7


чуток изменить да и всё
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Пример</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<meta http-equiv="Pragma" content="no-cache"/>
<script type="text/javascript" src="http://xakki.ru/test/jquery.js"></script>
<script type="text/javascript">
function fcheck(obj) {
trobj = $(obj).parent().parent();
if(obj.checked==true)
$(trobj).find("td>input[type='text']").attr("disabled","");
else
$(trobj).find("td>input[type='text']").attr("disabled","disabled");
return true;
}
</script>
</head>
<body>
<form action="temp.html" method="post" >
<table cellspacing="1">
<tr>
<td>материал</td>
<td>цена</td>
<td><input type="text" name="gramm[]" size="2" maxlength="2" disabled="disabled"/></td>
<td><input type="checkbox" name="material[]" value="0" onchange="return fcheck(this);"/></td>
</tr>
<tr>
<td>материал</td>
<td>цена</td>
<td><input type="text" name="gramm[]" size="2" maxlength="2" disabled="disabled"/></td>
<td><input type="checkbox" name="material[]" value="0" onchange="return fcheck(this);"/></td>
</tr>
</table>
<input type="submit" value="далее" />

</form>
</body>
</html>

Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 1.9.2009, 16:12; Ответить: sc2r2bey
Сообщение #8


а обязательно с jquery? без нее что нельзя :mellow:


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.9.2009, 3:01; Ответить: ZiTosS
Сообщение #9


sc2r2bey, Можно, но на jQuery элегантнее и код красивее. Советую использовать. Всего-то 1 файл дополнительный подключить, да и при том можно в сжатом варианте.

Если хотите без неё, то почитайте про DOM. Тут именно он вам и пригодится. Нужно будет найти нужный вам текстовый input, а это проверка соответствия типа по всем узлам родителя.
Могу написать если есть желание, просто заморачиваться не хочу...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 3.9.2009, 10:26; Ответить: sc2r2bey
Сообщение #10


вот на js и ничего лишнего
[php] while ($material_select = mysql_fetch_assoc($material_query))
{
echo "<tr>
<td>".htmlspecialchars ( $material_select['material'] )."</td>
<td align=\"center\">".htmlspecialchars ( $material_select['price'] )."</td>
<td align=\"center\"><input type=\"text\" disabled=\"disabled\" name=\"gramm[]\" size=\"2\" maxlength=\"2\" /></td>
<td align=\"center\"><input type=\"checkbox\" name=\"material[]\" onchange=\"changeBox(this)\" value=\"".htmlspecialchars (material_select['id'])."\" /></td>";
?>
</tr>
<?php
}[/php]

и
        <script type="text/javascript">
function changeBox(ele){
    for(var i=0;i<document.forms.form['gramm[]'].length;i++){
        document.forms.form['gramm[]'][i].disabled=(!document.forms.form['material[]'][i].checked);
    }
}
        </script>


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 692 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1695 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Нужен простой лендинг с формой обратной связи
10 Kuzzma 2562 11.9.2020, 21:33
автор: Kuzzma
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2315 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12412 24.7.2020, 17:02
автор: -JamesSmips-


 



RSS Текстовая версия Сейчас: 29.3.2024, 17:42
Дизайн