за помощь отблагодарю денежкой
предложения по улучшению кода с большим удовольствием приму.
я хочу сделать голосование с возможностью выбора возраста.
о работе скрипта: есть кнопки "ЗА(ON)" и "ПРОТИВ(OFF)", при нажатии на одну из них вываливается список с возростом, типа
Выберите Ваш возраст:
моложе 20
21-30
31-40
41-50
51-60
61 старше
где пользователь выбирает свой возраст, кликает например на кнопку "21-30" и с помощью AJAX'a пошли данные к базе!
скажу сразу что ВСЕ как я задумал работает!!
но есть одно, маленький нюанс.
суть проблемы:
если пользователь кликает например по кнопке "ЗА(ON)" -> выбирает возраст -> запрос идет к базе от "ЗА(ON)". Итого: РАБОТАЕТ
а вот если кликает например сначала по кнопке "ЗА(ON)", потом "ПРОТИВ(OFF)" (и наоборот), тоесть сначала хотел проголосовать ЗА, потом передумал, нажал на "ПРОТИВ(OFF) -> выбирает возраст -> вот тут-то и косяк, запрос идет к базе от "ЗА(ON)" и "ПРОТИВ(OFF)".
то есть почему-то выполняется 2ое обращение у базе!
вот код:
<script type="text/javascript">
var j = jQuery;
function footer(OnOff){
j(OnOff).click(function(){
j(".panel").slideUp("slow");
j(".boxOn").css({'display':'none'});
j(".boxOff").css({'display':'none'});
j(".center").css({'display':'block'});
return false;
});
}
function ajaxURL(box, rat, age, objid){
j(box).html('<div class="load"></div>');
j.ajax({
type:"POST",
url:"ajax.index.php",
data:"option=com_kino&task=vote"+rat+age+"&id=<?=$id;?>",
cache:false,
success:function(html){j(box).html(html);}
});
}
j(document).ready(function(){
j(".center").css({'display':'none'});
<?php /* кликаем на .boxOn > вываливается панель #panel */?>
j("#on").bind("click", function(){
j(".panel").attr('id','panelON').slideDown("slow");
<?php /* присваиваем уникальный id каждому элементу vozrast */ ?>
j(".panel div").attr('id',function(index){return 'on_'+index;}).addClass("vozrast_On").removeClass("vozrast_Off");
<?php /* выводим кнопки, ловим клик и обрабатываем AJAX */?>
j("#on_0").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=0", "<?=$id;?>");});
j("#on_1").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=1", "<?=$id;?>");});
j("#on_2").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=2", "<?=$id;?>");});
j("#on_3").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=3", "<?=$id;?>");});
j("#on_4").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=4", "<?=$id;?>");});
j("#on_5").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=5", "<?=$id;?>");});
footer(".vozrast_On");
});
<?php /* отрицательный отзыв */?>
j("#off").bind("click", function(){
j(".panel").attr('id','panelOFF').slideDown("slow");
<?php /* присваиваем уникальный id каждому элементу vozrast */?>
j(".panel div").attr('id',function(index){return 'off_'+index;}).addClass("vozrast_Off").removeClass("vozrast_On");
<?php /* выводим кнопки, ловим клик и обрабатываем AJAX */?>
j("#off_0").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=0", "<?=$id;?>");});
j("#off_1").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=1", "<?=$id;?>");});
j("#off_2").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=2", "<?=$id;?>");});
j("#off_3").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=3", "<?=$id;?>");});
j("#off_4").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=4", "<?=$id;?>");});
j("#off_5").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=5", "<?=$id;?>");});
footer(".vozrast_Off");
});
});
</script>
<div style='text-align:center;margin-top:5px;'>
<div class='boxLeft'><?=$sumON; /*число из базы*/ ?></div>
<div class='boxOn' id='on'></div><div class='boxOff' id='off'></div><div class='center'></div>
<div class='boxRight'><?=$sumOFF; /*число из базы*/ ?></div>
</div><div style='clear:both;'></div>
<div class='panel'>Выберите Ваш возраст:
<div>моложе 20</div>
<div>21-30</div>
<div>31-40</div>
<div>41-50</div>
<div>51-60</div>
<div>61 старше</div>
</div>