Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 07.01.2009, 01:18   #1
AgentVlad
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
Репутация: 2
По умолчанию Помогите разобраться как!?!

На первый взгляд вроде легко, но все равно голова сохнет.
Я вообще не программист, а так любитель, но порой такой мелочи не хватает для сайта, а знания ниже плинтуса не позволяют этого сделать.

Люди помогите. Суть вот в чем.
Есть форма в ней есть селектор

<select name="num" id="num" style="width: 150px">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option></select>

Как сделать так, чтобы если мы выберем число 1,
в этой же форме появится еще дополнительные строки, например:

"
<tr>
<td class="menubg4">Подробное описание (на анг. яз):</td>
<td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td>
</tr>
<tr>
<td class="menubg4">Подробное описание (на рус. яз):</td>
<td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td>
</tr>
"

а если выберем цифру 2, то в этой же форме появятся другие строки, например:

"
<tr>
<td class="menubg4">Подробное описание (на ФИН. яз):</td>
<td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td>
</tr><tr>
<td class="menubg4">Подробное описание (на ЛАТ. яз):</td>
<td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td>
</tr>
"
так же и с третьим числом.

Если мы выбираем одно, другого не видно, если выбираем другое число, первое убирается и появляются строчки соответствующие номеру 2.

Помогите плиз
AgentVlad вне форума   Ответить с цитированием
Старый 07.01.2009, 02:11   #2
wall66
Профессионал
 
Аватар для wall66
 
Регистрация: 04.10.2008
Адрес: Екатеринбург
Сообщений: 1,485
Репутация: 516

icq: 425890489
По умолчанию

простейший вариант:
Код HTML:
<select onchange="somefunction(this.value)" name="num" id="num" style="width: 150px">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div id="element"></div>
<script>
function somefunction(num) {
if(num==1){document.getElementById('element').innerHTML='<table><tr><td class="menubg4">Подробное описание (на анг. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr><tr><td class="menubg4">Подробное описание (на рус. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr></table>'}
if(num==2){document.getElementById('element').innerHTML='<table><tr><td class="menubg4">Подробное описание (на ФИН. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr><tr><td class="menubg4">Подробное описание (на ЛАТ. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr></table>'}
}
</script>
__________________
свободен...
wall66 вне форума   Ответить с цитированием
Старый 08.01.2009, 01:23   #3
AgentVlad
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
Репутация: 2
По умолчанию

Большое человеческое спасибо!
Скрипт я поместил в хеад, а как сделать чтоб он его показывал в нужном месте? через див ид=элемент?
AgentVlad вне форума   Ответить с цитированием
Старый 08.01.2009, 01:46   #4
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
Репутация: 18
По умолчанию

Цитата:
Сообщение от AgentVlad Посмотреть сообщение
Большое человеческое спасибо!
Скрипт я поместил в хеад, а как сделать чтоб он его показывал в нужном месте? через див ид=элемент?
Да, функция getElementById('element') ищет элемент с идентификатором element - в данном случае это <div id='element'> и внутрь помещает контент при помощи присвоения свойству innerHTML содержимого которое и выведется внутрь элемента с идентификатором element
iankov вне форума   Ответить с цитированием
Старый 08.01.2009, 01:55   #5
AgentVlad
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
Репутация: 2
По умолчанию

Код:

<script>
function somefunction(num) {
if(num==1){document.getElementById('element').innerHTML='<tr><td class="menubg4">Подробное описание (на анг. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr><tr><td class="menubg4">Подробное описание (на рус. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr>'}
if(num==2){document.getElementById('element').innerHTML='<tr><td class="menubg4">Подробное описание (на ФИН. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr><tr><td class="menubg4">Подробное описание (на ЛАТ. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr>'}
}
</script>

Вот почему спросил, просто селект у меня наверху, а я хочу чтоб эти дополнительные окна появлялись в конце таблицы, а они появляются вне таблицы.
Цитата:
table width="550" border="1" cellspacing="1" cellpadding="0" bordercolor="#999999">
<tr>
<td height="20" colspan="3" background="pic/bgfirmad.gif" class="date">Добавить объявление очень просто и быстро!</td>
</tr>
<tr>
<td width="250" class="menubg4">Тип товара:</td>
<td width="150"class="menubg4">
<select onchange="somefunction(this.value)" name="num" id="num" style="width: 150px">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
<td width="150" class="menubg4">Например: CD/DVD</td>
</tr>
<tr>
<td width="250" class="menubg4">Модель товара:</td>
<td width="150"class="menubg4">
//тут например какой-нить инпут
</td>
<td width="150" class="menubg4">Например: Чупакапра</td>
</tr>

<div id="element"></div>

</table>
Так получается, что эти дополнительные окна(текстареа вместе с текстом) выносит за пределы таблицы, сверху.

Мож знает кто почему?

Последний раз редактировалось AgentVlad; 08.01.2009 в 01:57.
AgentVlad вне форума   Ответить с цитированием
Старый 08.01.2009, 02:31   #6
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
Репутация: 18
По умолчанию

В скрипте я добавил открывающий и закрывающий теги таблицы

Код HTML:
function somefunction(num) {
if(num==1){document.getElementById('element').innerHTML='<table><tr><td class="menubg4">Подробное описание (на анг. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr><tr><td class="menubg4">Подробное описание (на рус. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td><td></td></tr></table>'}

if(num==2){document.getElementById('element').innerHTML='<table><tr><td class="menubg4">Подробное описание (на ФИН. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr><tr><td class="menubg4">Подробное описание (на ЛАТ. яз):</td><td colspan="2" class="menubg4"><textarea name="about_est" maxlength=600 style="width:325px; height:120px;"></textarea></td></tr></table>'}
}

И в хтмл на месте где был div, заключил этот же div в ячейку таблицы.
Код HTML:
<tr><td colspan="3"><div id="element"></div></td></tr>
В чем же была проблема?
Так как элемент div до этого был между тегами таблицы, но не входил ни в какую ячейку таблицы, то браузер его считает как ошибкой верстки хтмл и автоматически исправляет эту ошибку вынося элемент div из таблицы и размещая его перед таблицей, поэтому и вывод контента оказывался перед таблицей.

Последний раз редактировалось iankov; 08.01.2009 в 02:33.
iankov вне форума   Ответить с цитированием
Старый 08.01.2009, 02:39   #7
AgentVlad
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
Репутация: 2
По умолчанию

Большое спасибо, что так хорошо и грамотно пояснил.
Приятно пообщаться с умным человеком.

Все кто отписал, большое спасибо!
AgentVlad вне форума   Ответить с цитированием
Старый 10.01.2009, 22:00   #8
AgentVlad
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
Репутация: 2
По умолчанию

Люди, кто знает почему?
Код:

<select name="num" id="num" style="width: 150px">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option></select>

Когда мы выбрали номер два, у нас появилось

Код:

<tr>
<td class="menubg4">Подробное описание (на анг. яз):</td>
<td colspan="2" class="menubg4"><textarea name="about_eng" maxlength=600 style="width:325px; height:120px;"></textarea></td>
</tr>

Мы её заполнили.

Нажали отправить, а проверка говорит, что переменной $about_eng не существует (Undefined variable/Undefined index).

мое мнение:
Получается, что в мы загружаем страницу - загружается Форма отправки, а когда появляется в этой форме дополнительное Текстареа $about_eng, форма её не замечает?

Что делать? Помогите...

Последний раз редактировалось AgentVlad; 10.01.2009 в 22:21.
AgentVlad вне форума   Ответить с цитированием
Старый 10.01.2009, 22:04   #9
wall66
Профессионал
 
Аватар для wall66
 
Регистрация: 04.10.2008
Адрес: Екатеринбург
Сообщений: 1,485
Репутация: 516

icq: 425890489
По умолчанию

на этом форуме уже сотни раз обсуждалось что эта переменная находится по адресу $_POST['about_eng']

также возможно что поле находится за пределами формы
__________________
свободен...
wall66 вне форума   Ответить с цитированием
Старый 10.01.2009, 22:18   #10
AgentVlad
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
Репутация: 2
По умолчанию

Не, я конечно тупой, но не настолько
Цитата:
<head><script>
function somefunction(num) {
if(num==1){document.getElementById( 'element').innerHTML='<tr>
<td class="menubg4">Подробное описание (на анг. яз):</td>
<td colspan="2" class="menubg4"><textarea name="about_rus" maxlength=600 style="width:325px; height:120px;"></textarea></td>
</tr>'}
if(num==2){document.getElementById( 'element').innerHTML='<tr>
<td class="menubg4">Подробное описание (на анг. яз):</td>
<td colspan="2" class="menubg4"><textarea name="about_eng" maxlength=600 style="width:325px; height:120px;"></textarea></td>
</tr>'}

}</script>
</head>
идет форма:
Цитата:
<form action="<?php print "$PHP_SELF"; ?>" method="post">

<tr><td><select onchange="somefunction(this.value)" name="num" id="num" style="width: 150px">
<option value="1">1</option>
<option value="2">2</option></td></tr>

<tr><td colspan="3"><div id="element"></div></td></tr>

</form>

Идет потом проверка

ну типо такой например:

Цитата:
if (!empty($_POST['about_eng'])){$about_eng=$_POST['about_eng'];
echo $about_eng;
}
ну и пишет что нету её Undefined index

Последний раз редактировалось AgentVlad; 10.01.2009 в 22:29.
AgentVlad вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться как это работает! Пожалуйста Romens Паскаль 1 08.12.2008 23:16
Помогите разобраться: как в екселе умножать прогресивное начисление??? macco Microsoft Office Excel 2 02.12.2008 13:14
Помогите разобраться как сделать ехе-шник KnDmPetr Паскаль 5 14.03.2008 18:16
Помогите разобраться как запустить Паскаль под WindowsXP KnDmPetr Паскаль 8 03.03.2008 13:08


11:28.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru