|
|
|
| Есть анкета, кот. должен заполнить пользователь, чтобы анкета не казалась очень громоздкой , необязательные для заполнения вопросы я сразу не выводила в общую анкету, а оставляла кнопку, при желании пользователь мог нажать на кнопку тогда анкета удлинялась и заполнение продолжалось, в итоге после нажатия на кнопку ПРИНЯТЬ всё это заполнялось в базу.
Но гораздо нагляднее и как-то даже интереснее и красивее если бы дополнительные вопросы выводились не кнопкой, а в виде ссылки , и чтобы анкета не удлинялась а появлялось новое окно небольших размеров с соот-ющими вопросами - человек заполнил нажал принять и вернулся в основную анкету запольнять дальше.
Как это сделать....Или примеры, или может кто-то сам с этим сталкивался!
Или поскажите другой вариант....
Заранее спасибо! | |
|
|
|
|
|
|
|
для: lilu
(14.07.2006 в 21:30)
| | Тут чисто JavaScript и ничего более!!! | |
|
|
|
|
|
|
|
|
для: cheops
(15.07.2006 в 00:03)
| | Да, окно нужных размеров выводится через JS функцией open()
Но лучше вопросы делать не в новом окне (браузер может блокировать окна), а в слое (style.vsibility='visible') | |
|
|
|
|
|
|
|
для: 12345
(15.07.2006 в 16:25)
| | Про окна новых размеров понятно, а вот про слои хотелось бы по подробнее :), может это то, что нужно. Как оно вообще работает, если можно с примером. | |
|
|
|
|
|
|
|
для: lilu
(16.07.2006 в 12:15)
| | конечно надо использовать слои. напишешь в теле <div id="Moi_sloi"></div> в а таблице стилей опишешь все что ты о нем думаешь типа:
#Moi_sloi{
position:absolute;
top:0px;
left:0px;
display:none;
color:#000;
background-color:#f0f0f0;
border:2px outset #fff;
z-index:-1;
}
абсолютная позиция даст тебе возможность манипулировать этим слоем всякоразно - например заставить его ездить по экрану или занимать всегда место в центре. поскольку возможны разные варианты контента твоего слоя то надо в скрипте прописать их вроде этого:
<script language="JavaScript" type="text/javascript">
var contents = new Array();
contents[0] = "один вариант";
contents[1] = "другой вариант";
contents[2] = "третий вариант";
//и потом когда ты будешь делать слой видимым вставляй тот вариант который нужно
//а видимым слой делается примерно вот так:
function showDiv(contNum){
var sloi = document.getElementById("Moi_sloi");
sloi.style.display = "block";
sloi.innerHTML = contents[contNum];
sloi.style.zIndex = "500";
}
</script>
ну и вызов функции приурочишь к каким-то своим событиям я уж не знаю. | |
|
|
|
|
|
|
|
для: Padonak
(16.07.2006 в 18:25)
| | Класс, спасибо за такое объяснение, я до того как это увидела сама стала делать, но возник вопрос - когда на слое нажимаешь на кнопку, то данный слой исчезает и появляется первичный, как его заставить оставаться на месте?
Вот мой код, простенький пример.
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']?>" target="_self">
ФИО: <input name="fio_text" type="text" size="50"> <br>
возраст: <input name="age_text" type="text" size="10"> <input type="submit" name="test_pr" value="принять">
<div id="formSLayer"
style="display: none; visibility: visible; position: absolute; z-index: 100; background-color: #808080; width: 500px; height: 300px; left: 5px; top: 10px;" >
образование: <input name="study_text" type="text" size="20"> <br>
сем. положение: <input name="fam_text" type="text" size="10"> <input type="submit" name="test_pr1" value="принять">
<? if($test_pr1){
$rez=mysql_query("Insert into style_table (fio, age, study, fam) values ('$fio_text','$age_text','$study_text','$fam_text')");
if($rez) echo "Добавилось фио, возраст, образование, сем. положение";
}?></div>
<a href="#" onclick="document.getElementById('formSLayer').style.display='block'; return false;" >дополнительная информация </a>
<?
if($test_pr){
$rez=mysql_query("Insert into style_table (fio, age, study, fam) values ('$fio_text','$age_text','нет','нет')");
if($rez) echo "Добавилось фио, возраст";
}
?>
</form>
|
Т.е. при нажатии на кнопку $test_pr на 0-ом слое, пишется "Добавилось фио, возраст" и данные заносятся в базу, нажимаем по ссылке - появляется слой тоже с полями для ввода и кнопкой $test_pr1, при нажатии должна появится надпись "Добавилось фио, возраст, образование, сем. положение" и соотв-но все даные записаться в базу. Данные все записываются, а надписи нет и слой прячется, т.е. перед глазами опять первичные поля слоя 0 (мол заново заполняй! :))!
Что мне поправить! | |
|
|
|