Цитата:
var Data; function go(data) { alert("Ok!"); ..... $.post('save_data.php', {drink: drink}, function(data){Data=data; .... |
Не работает.:(
var Data; function go(data) { alert("Ok!"); var row = ''; row = '<form>'; for (var i in data) { row += '<b>' + data[i].questions + '</b><Br>'; var ss = data[i].answers.split(','); for (var i2 = 0; i2<ss.length; i2++) { row += '<input type="radio" name="id_answer'+i+'" value="' + i2 + '">' + ss[i2] + '<Br>'; } break; } row += '<button onclick="function(data) {Data = data; go(data); return false;}">Далее</button></form>'; $('#feeds').html(row); } $(document).ready(function(){ $('form input:image').click(function() { var drink = $('input[name=drink]:checked').val(); $.post('save_data.php', {drink: drink}, function(data){ Data = data; if(data) { var fieldsCount = data.length; if(fieldsCount) { go(data); } } }, "json"); return false; }); }); |
Опишите теперь как должно работать щас попробуем закончить -Вы не написали пока ничего
То есть первый раз запускается из обработчика и вызываем go и вытаскивает из data с i=0;а потом-как нажимаем на кнопку снова запускаем go но с i=1 а дальше? |
Цитата:
Выводится первый вопрос и варианты ответов, нажимаем кнопку Далее, должен появиться следующий вопрос и другие варианты. А старый вопрос с вариантами должен удаляться. Именно удаляться, а не заменяться, так как в одном вопросе может быть 3 варианта ответов, а в другом уже например 4. |
Так попробуйте
var Data;var ii=0; function go() {var data=Data; alert("Ok!=+ii"); var row = ''; row = '<form>'; row += '<b>' + data[ii].questions + '</b><Br>'; var ss = data[ii].answers.split(','); for (var i2 = 0; i2<ss.length; i2++) { row += '<input type="radio" name="id_answer'+ii+'" value="' + i2 + '">' + ss[i2] + '<Br>'; } row += '<button onclick="go(); return false;">Далее</button></form>'; $('#feeds').html(row); ii++; } $(document).ready(function(){ $('form input:image').click(function() { var drink = $('input[name=drink]:checked').val(); $.post('save_data.php', {drink: drink}, function(data){ Data = data; if(data) { var fieldsCount = data.length; if(fieldsCount) { go(); } } }, "json"); return false; }); }); |
Отлично! Работает. Спасибо огромное.:) Сейчас поем, буду дальше с сохранение значения в скрытый элемент разбираться.
|
Цитата:
var Data;var ii=0;var Rez={}; |
Я не учел один момент. Если пользователь захочет вернуться к предыдущему вопросу. В таком случае нужно создать еще одну кнопку, "Назад". Нажимаем "Далее", делаем инкремент i++, если жмем "Назад", тогда декремент i--. Только как сделать, чтобы он делал это по нажатию кнопок.
Выбранные значения наверно лучше сохранять в массив? Потом по нажатию кнопок пробегаться по нему, чтобы при переключении вопросов показывался ранее выбранный вариант. Т.е. вставлять галочку на ранее выбранном ответе, а то пользователю придется заново выбирать ответ. Были мысли выводить вопросы с вариантами ответов поочередно. Т.е. вывести первый, нажимаем "Далее", выводится второй, а первый скрывается средствами свойства CSS: $(document).ready(function(){ var i = 0, questions = $('form p'); questions[0].style.display = 'block'; $('#right').click(function(){ if(i === questions.length - 1) { this.style.display='none'; document.getElementById('left').style.display='none'; questions[i].style.display='none'; $('input[type=submit]').show(); return false; } questions[i].style.display='none'; i++; questions[i].style.display='block'; $('#left').show(); }); $('#left').click(function(){ if(i === 0) { return false; } questions[i].style.display='none'; i--; questions[i].style.display='block'; if(i === 0) { this.style.display='none' } }); }); Какая идея на ваш взгляд более удачная и логичная? Ну и в плане эффективного распределения и потребления ресурсов, что лучше? |
Вот кстати пример реализации этой идеи. Помог один человек сделать:
http://jsfiddle.net/S2Gcb/1/ Не правильно я вам сказал, выводится не поочередно, а все сразу. Только показывается первый, а остальные пока скрыты. |
Цитата:
Я так понял что ты для тренировки программирования сам взялся делать потому что в инете много готовых решений |
Часовой пояс GMT +3, время: 12:21. |