Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Пошаговая форма


Автор: MagicPRO 5.6.2012, 15:15
Добрый день! Снова столкнулся я с jquery(javascript) Проблема следующая. Создается сайт. Клиент заказывает может сделать заказ и во здесь надо сделать следующее:
1. захожу в пункт меню прием заказа
2. нажимаю кнопку выбрать клиента
3. форма заказа закрылась, появилась форма выбора клиента
4. Нажимаю на кнопку против выбранного клиетна
5. По нажатию форма выбора закрывается и фоявляется форма заказа но возле кнопки выбрать написано имя клиента
6. нажимаю на кнопку выбора выбора работ, все происходит аналогично 3-5 но с формой выбора типов работ
7. ввожу в поле цену
8. нажимаю кнопку в работу
9. все сохраняется
клиент и вид работы выбираются запросом sql, они добавляют и удаляются в отдельной странице сайта.
Собственно с  чего начать?)...по ходу буду разбираться

Автор: Tokagero 5.6.2012, 18:41
Если уж совсем туго можно просто сделать несколькими страницами, и результаты передавать в переменных типа блаблабла?client=Vasya&work=Дворник и т.д.
А следующая страница подхватывает переменные в текстовом виде и заполняет в поля нужные. И по цепочке.

Вариант 2 - через iframe. опять же, сторонние страницы, во фреймах. Как запасной вариант

Вариант 3 - наделать нужных DIVов. Держать их в display=none, завести глобальных переменных на странице. При выборе чего-то в DIVe идет опять display=none, а у следующего дива display=block; position=absolute; text-align=center; и т.д. Сделать кнопки перехода между дивами, если нужно. Можно результат работы дива передавать параметром функции.


Код

div {
width: 500px;
height: 400px;
display:none;
position:absolute;
text-align: center;
vertical-align: middle;
}



Код

<div id="div1"><a onClick="goNext(this.value);">Вася Пупкин</a></div>
<div id="div2"><span id="dude_name"></span></div>


Код

window.onLoad = function () {
document.getElementById("div1").style.display="block";
}

function goNext(name) {
document.getElementById("dude_name").innerHTML = name;
document.getElementById("div1").style.display="none";
document.getElementById("div2").style.display="block";
}

Автор: MagicPRO 5.6.2012, 23:06
спасибо,буду пробовать!!!

Автор: Tokagero 6.6.2012, 00:04
Цитата(MagicPRO @ 5.6.2012,  23:06)
спасибо,буду пробовать!!!

Даже так. Сделал, прикрепил архивом. Смотрим

Автор: MagicPRO 7.6.2012, 15:40
И так сдвиг есть)...Создал 3 "дива"..пошагово...но осталось 2 проблемы: 
1 - в шаге третем при указе стоимости нужно чтоб отображались и фирма, и вид работы. А у меня отображается только вид работы. Я в java не силен не пойму как прописать goStep2 что бы передавались 2 параметра.
2 - когда введу цену как их передавать в основную страницу где будет видно все заказы? 

Код

<html>
    <head>
        <meta http-equiv="Content-type" content="text/html;charset=windows-1251">
        <script type="text/javascript" src="js/script.js"></script>
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <title>Заказ</title>
</head>
<body>
<div id="div1" style="display:block;"><h2>Заказчик</h2><br>
<?
$hostname = "localhost";
$username = "root";
$password = ""; 
$dbName = "texntronbase"; 
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
$query = "SELECT name FROM Consumers";
$res = mysql_query($query) or die(mysql_error()); 
echo '<select id="name" name="name">';
while($row=mysql_fetch_array($res))
{echo '<option value="' . $row['name'] . '">' . $row['name'] . '</option>';} 
echo '</select>';
echo "<td align=\"center\">";
echo "<input type=\"button\" value=\"Далее\" onclick=\"goStep1();\">";
?>    
</div>
<div id="div2"><h2>Укажите вид работы</h2><br>
<span id="name_o"> </span> 
<?
$hostname = "localhost";
$username = "root";
$password = ""; 
$dbName = "texntronbase"; 
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
$query = "SELECT name FROM jobs";
$res = mysql_query($query) or die(mysql_error()); 
echo '<select id="jobs" name="jobs">';
while($row=mysql_fetch_array($res))
{echo '<option value="' . $row['name'] . '">' . $row['name'] . '</option>';} 
echo '</select>';
echo "<input type=\"button\" value=\"Далее\" onclick=\"goStep2();\">";
?> 
<p>
<input type="button" onClick="goBack1()" value="Назад">
</div>
<div id="div3"> <h2>Укажите стоимость</h2><br>
 
<span id="jobs_o"> </span>
 <br> <br>
<input type="text" name="price" maxlength="10"/>
<input type="button" onClick="goNext()" value="Внести">
<input type="button" onClick="goBack2()" value="Назад">
</div>

</body>
</html>

script.js
Код

function goStep1() {
    var name = document.getElementById("name").value;
    document.getElementById("name_o").innerHTML = name;
    document.getElementById("div1").style.display="none";
    document.getElementById("div2").style.display="block";
}

function goBack1() {
    document.getElementById("div2").style.display="none";
    document.getElementById("div1").style.display="block";
}

function goStep2() {
    var job = document.getElementById("jobs").value;
    document.getElementById("jobs_o").innerHTML = job;
    document.getElementById("div2").style.display="none";
    document.getElementById("div3").style.display="block";
}
function goBack2() {
    document.getElementById("div3").style.display="none";
    document.getElementById("div2").style.display="block";
}


Автор: Aliance 7.6.2012, 18:00
А какой смысл называть названия обработчиков в каком-то детском camelCase (я про onClick)?

Автор: MagicPRO 7.6.2012, 19:47
назвал что бы легче ориентироватсья что за что отвечает! Суть в другом то

Автор: Amphiluke 7.6.2012, 20:09
Цитата(Aliance @  7.6.2012,  22:00 Найти цитируемый пост)
А какой смысл называть названия обработчиков в каком-то детском camelCase (я про onClick)?

Чему вы удивляетесь, там и вся страница сверстана в quirks mode. smile

Автор: MagicPRO 7.6.2012, 22:32
я ж не профи, а только учусь.....поэтому и прошу о помощи!

Автор: MagicPRO 8.6.2012, 17:10
Aliance, я так понял ты разбираешься в джаве, можешь помочь?

Автор: Aliance 9.6.2012, 09:53
MagicPRO, третья ссылка в моей подписи может дать ответ на Ваш вопрос.

А помочь тут могут многие, вы вопрос задавайте главное. Только не вида "мне нужно то-то, сделайте за меня", а именно вопрос "я пытался сдлеать это так-то, не получается, как правильно?".

К слову, мой комментарий выше как раз и был попыткой "помочь начинающему" (расшифровываю: писать onClick не нужно).

Автор: bilbobagginz 9.6.2012, 23:47
я не понял точно, но грубо говоря это называется http://wiki.jqueryui.com/w/page/23314826/Wizard
(там внизу в "Existing jQuery Plugins" и "Existing jQuery Widgets" есть рабочие варианты)


Автор: MagicPRO 10.6.2012, 11:32
Спасибо буду пробовать!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)