2013-07-24 2 views
0

У меня есть, что при первоначальном просмотре является простым требованием к show/hide двум divs на основе ответа пользователей на переключатели.Решение jQuery или Javascript для переключателей и отображения/скрытия divs

Смотрите JsFiddle: http://jsfiddle.net/P75cv/

Реальная сложность заключается в следующем.

Диво one должны быть показан, если любой из вопросов имеет значение кнопки радио из 2 или 1. Дива two является только, чтобы показать, если любой из вопросов не имеет значения 2, 1 или -1.

Однако, мне также нужно еще проверить, чтобы сделать следующее, если DIV one было показано, и пользователь возвращается и изменяет свой ответ так, что ни одна из кнопок радио не имеют значения или 2 или 1, то Div one потребности в быть скрытым, а div two показан. Аналогично, если отображается div two, но пользователь возвращается и изменяет свои ответы так, чтобы любой из переключателей имел значение 2 или 1, div two должен быть скрыт и показан div one.

И, наконец, у пользователя есть возможность сохранить и вернуться на страницу - если они это сделают, мне нужен правый div, который будет отображаться на основе (при загрузке страницы?).

Простая часть показа и скрытия divs Я могу делать как в jQuery, так и в Javascript, но этот уровень сложности действительно вызывает у меня головную боль - может ли кто-нибудь предложить идеи или решения?

+0

Вы спрашиваете что-то настолько точное, и это не то место, где люди будут делать домашнее задание ... просто помогая с конкретными вопросами. Возьмите некоторые идеи отсюда, не так сложно: http://jsfiddle.net/eJaQh/1/ – Alvaro

+0

Спасибо @Alvaro - глядя на jsFiddle, которую вы любезно предоставили, похоже, мне придется вручную перебирать вопросы - Это нормально, если есть только два вопроса. Одна из причин этого вопроса заключалась в том, что я надеялся найти более элегантный и эффективный способ использования jQuery, когда я скажу 10 или 20 наборов вопросов на странице. Я не ожидаю, что это будет сделано для меня - просто идеи и предложения, поскольку я застрял на этом. –

+0

Вы можете перебирать их в другом, если хотите. Это был просто пример. Если вы не знаете, как это сделать другим способом, откройте новый вопрос с этим конкретным сомнением. – Alvaro

ответ

0

Так, отвечая на мой собственный вопрос - я использовал следующий код:

<?php 
function checking() { 
count = 0; 
"; 
for ($i=1; $i<=10; $i++){ 
echo" q".$i." = $('input[name=\"q".$i."\"]:checked').val(); 
    if(q".$i." == 1 || q".$i." == 2){ 
      document.getElementById('disagree').style.display = 'block'; 
      document.getElementById('agree').style.display = 'none'; 
     count = 1; 
    } 
    "; 

    } 

    echo" 

    if (count==0){ 
     document.getElementById('disagree').style.display = 'none'; 
     document.getElementById('agree').style.display = 'block'; 
    } 

} 
?> 

Как вы можете видеть, у меня есть 10 вопросов, на странице и использовать PHP, чтобы написать сценарий, и он работает. Я не сомневаюсь, что есть более эффективные и элегантные способы достижения того же.

0

Я бы создал ваши основные функции, которые выполняют процедуру show/hide. Затем заполните массив, который имеет все значения переключателей, проверьте, содержит ли массив нужные значения, а затем вызывает правильную функцию.

Я хотел бы использовать JQuery cookie для хранения того, что div должен отображаться, когда пользователь сохраняет и возвращается на страницу.

+0

Спасибо, что нашли время ответить - как вы можете видеть из моего собственного ответа - я разработал решение ... не красивое, но оно работает. –