Все, что я пытаюсь сделать, это сделать звездный рейтинг, используя Python и Flask. Моя идея состоит в том, чтобы сделать 5 радиокнопок, по одной для рейтинга (1-5), а затем связать каждую радиокнопку с тегом привязки, который переходит к значению для l oop на той же странице и зацикливается на новом наборе звездочки, использующие значение выбранной радиокнопки, чтобы изменить ее цвет и скрыть исходный набор радиокнопок звездочек, используя CSS относительное абсолютное позиционирование.
Все это происходит перед отправкой формы, но я не могу получить это правильно. У меня вопрос, правильно ли я делаю? Есть ли способ использовать <a>
для перехода на ту же страницу и использовать для l oop, а не задействовать application.py
. Вот мой код:
<form action=" {{url_for('search')}} " method="post">
<div class="star_rating">
<input style="display:none" type="radio" id="star1" name="rate" value="1"/>
<label for="star1"><a href="{{url_for('rating',rate=1,_anchor='rate')}}"><i class="material-icons" style="font-size:48px;color:#C0C0C0">star</i></label></a>
<input style="display:none" type="radio" id="star2" name="rate" value="2">
<label for="star2"><a href="{{url_for('rating',rate=2,_anchor='rate')}}"><i class="material-icons" style="font-size:48px;color:#C0C0C0">star</i></label></a>
<input style="display:none" type="radio" id="star3" name="rate" value="3">
<label for="star3"><a href="{{url_for('rating',rate=3,_anchor='rate')}}"><i class="material-icons" style="font-size:48px;color:#C0C0C0">star</i></label></a>
<input style="display:none" type="radio" id="star4" name="rate" value="4">
<label for="star4"><a href="{{url_for('rating',rate=4,_anchor='rate')}}"><i class="material-icons" style="font-size:48px;color:#C0C0C0">star</i></label></a>
<input style="display:none" type="radio" id="star5" name="rate" value="5">
<label for="star5"><a href="{{url_for('rating',rate=5,_anchor='rate')}}"><i class="material-icons" style="font-size:48px;color:#C0C0C0">star</i></label></a>
<div id="rate">
{% for a in range (rate)%}
<div id=star_a><i class="material-icons" style="font-size:48px;color:#84DE02;display:inline">star</i></div>
{% endfor %}
{% for a in range(5-rate) %}
<div id=star_a><i class="material-icons" style="font-size:48px;color:#C0C0C0">star</i></div>
{% endfor %}
</div>
</div>
<button>Submit</button>
</form>