Я строю систему оценки персонала, где пользователям задают 10 вопросов, чтобы оценить сотрудника. Как то так 
Каждой звезде присваивается значение от 1 до 5. В настоящее время я получаю каждое значение, но как мне присвоить каждое значение переменной, например: var questionOne = 2; var questionTwo = 3;
Это мой код на данный момент:
<h4>Score Ola using our rating form below.</h4>
<p>Job Title: Nanny</p>
<p style = "color: red; font-size: 12px;">
Note: Questions are selected based on job title. We are constantly reviewing the list of job specific questions, please assist by recommending questions you would like to add to our job specific questionaire <a href = "#">here</a>
</p>
@foreach (var question in Model.AppraisalQuestions)
{
<p>@question.QuestionDescription</p>
<div class = "row lead evaluation">
<div id = "colorstar" class = "starrr ratable"></div>
<span id = "count">0</span> star(s) - <span id = "meaning"> </span>
</div><br />
}
Пока что Javascript:
$(document).ready(function() {
var correspondence = ["", "Poor", "Below Expectation", "Above Expectation", "Good", "Excelent" ];
$('.ratable').on('starrr:change', function(e, value) {
$(this).closest('.evaluation').children('#count').html(value);
$(this).closest('.evaluation').children('#meaning').html(correspondence[value]);
var currentval = $(this).closest('.evaluation').children('#count').html();
var target = $(this).closest('.evaluation').children('.indicators');
target.css("color","black");
target.children('.rateval').val(currentval);
target.children('#textwr').html(' ');
alert(value);
});
Я хочу сохранить каждую оценку в базе данных. Любая помощь будет принята с благодарностью. Спасибо
Непонятно, что вы хотите решить - вы ничего не привязываете к своей модели. Вы хотите установить начальные значения или ваша проблема пытается обновить значения?
@stephen, спасибо, я хочу получить каждую оценку по каждому вопросу и сохранить ее в базе данных ...
Всегда ли в оценочных вопросах 5 пунктов?
Но у вас нет формы или каких-либо элементов управления формой для отправки. И какой плагин jquery вы используете для контроля рейтинга (если есть)?
@ gardarvalur да, оценка всегда 5, а вопросов всегда будет 10 ....
@StephenMuecke Я буду использовать сообщение jquery, чтобы опубликовать его, но я застрял в получении каждой оценки по каждому вопросу ....
Нет никакой разницы, если он опубликован с использованием ajax. Вы должны быть привязаны к своей модели - по крайней мере, ваша модель будет содержать свойство int Rating, к которому вы привязываетесь, а затем вы можете сериализовать свою форму, чтобы опубликовать ее.
Да, я понимаю, у меня есть модель, и проблема, с которой я столкнулся, заключается в том, как получить значение каждого рейтинга с помощью jquery, прежде чем передавать его в мою модель рейтинга.
Как насчет того, чтобы назначить его из модели как таковой, <div id = "colorstar" class = "starrr ratable" data-value = "@ question.derp"> </div> ---> где derp - ваше значение
Хорошо ... Спасибо, но я немного запутался ... Будет ли он получать значение для каждой оценки?
хммм .... теперь, когда я смотрю на ваш код более внимательно, кажется, что вы будете показывать только одну звездочку на каждой итерации цикла. Разве у вас не должно быть пяти звезд на каждой итерации?
Я не понимаю твой вопрос, пожалуйста ...
Я попытаюсь ответить тебе



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Возможно, я полностью неверно понимаю ваш вопрос, но этот псевдокод у меня работает. Я добавил пять пустых звездочек к каждому вопросу и присвоил каждому вопросу значение и идентификатор вопроса. Вы также должны иметь возможность изменить значок звездочки с помощью jQuery, но я не включил это.
Просто дайте мне знать, если я что-то не понимаю.
Код разметки:
@foreach (var question in Model.AppraisalQuestions)
{
<p>@question.QuestionDescription</p>
<div class = "row lead evaluation">
<i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "1" data-question = "@question.QuestionID"></i>
<i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "2" data-question = "@question.QuestionID"></i>
<i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "3" data-question = "@question.QuestionID"></i>
<i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "4" data-question = "@question.QuestionID"></i>
<i class = "glyphicon glyphicon-star-empty starrr ratable" data-value = "5" data-question = "@question.QuestionID"></i><br />
<span class = "count">0</span> star(s) - <span class = "meaning"> </span>
</div><br />
}
Javascript:
<script type = "text/javascript">
$(document).ready(function () {
var correspondence = ["", "Poor", "Below Expectation", "Above Expectation", "Good", "Excelent"];
$(".ratable").click(function() {
var value = $(this).data("value");
var questionID = $(this).data("question");
$(this).closest('.evaluation').children('.count').text(value);
$(this).closest('.evaluation').children('.meaning').html(correspondence[value]);
//TODO: send value and questionID to server, perhaps via ajax or something
});
});
</script>
Круто, @ user8107351 может ты дашь мне знать, работает ли? :)
Это, скорее всего, разрешит дублирование идентификаторов, и этого следует избегать.