[英]rateYo jquery plugin function star rating codeigniter/php
HTML:
<div id="submit-review">
<form action="<?=base_url()?>story/submit_review/<?=$story['story_id']?>" method="post">
<div class="form-group">
<label for="review-rating">Rate the story</label>
<div id="review-rating"></div>
</div>
<div class="form-group">
<label for="review-content">Write your review</label>
<textarea class="form-control" name="review-content"></textarea>
</div>
<button class="btn btn-default">Post Review</button>
</form>
</div>
<script>
$(function () {
tinymce.init({
selector:'textarea'
});
$("#review-rating").rateYo({
starWidth:"25px"
});
});
</script>
控制器:
public function submit_review(){
$story_id = $this->uri->segment(3);
$review_content = $this->input->post('review-content');
}
我尝试使用网站提供的 jquery 脚本进行试验:
$(function () {
var $rateYo = $("#rateYo").rateYo();
$("#getRating").click(function () {
/* get rating */
var rating = $rateYo.rateYo("rating");
window.alert("Its " + rating + " Yo!");
});
$("#setRating").click(function () {
/* set rating */
var rating = getRandomRating();
$rateYo.rateYo("rating", rating);
});
});
但我一直有问题,我没有任何 jquery 背景。 我已经完成了 javascript 验证,但那是几年前的事了。 我可以重新学习,但我必须先从 javascript 开始。
我的想法是以某种方式为我的<form>
中的隐藏输入类型设置一个值,然后通过 CI 中的 post 从那里获取它。
<input id='review-rating' type="hidden" value=""></input>
var $rateYo = $("#review-rating").rateYo();
$("#submit-review").click(function () {
var rating = $rateYo.rateYo("review-rating");
$("#hidden-rating").val(rating);
window.alert("Its " + rating + " Yo!");
});
但是我无法测试上面的代码是否有效,因为每当我尝试添加它时,我的其他 jquery 函数将无法工作。 我正在使用 rateYo 插件和 tinymce。
这是我当前的脚本:
$(function () {
tinymce.init({
selector:'textarea'
});
$("#story-rating").rateYo({
rating: <?=$story['rating']?>,
readOnly: true
});
<?php if(isset($reviews['your_review']) AND $reviews['your_review'] != NULL){ ?>
$("#my-rating").rateYo({
rating: <?=$your_review_rating?>,
readOnly: true,
starWidth: "25px"
});
<?php } ?>
$("#review-rating").rateYo({
starWidth:"25px"
});
<?php foreach($reviews['other_reviews'] as $id=>$row){ ?>
$("#rating-<?=$id?>").rateYo({
rating: <?=$row['rating']?>,
readOnly: true,
starWidth: "25px"
});
<?php } ?>
});
我几乎没有完成上述工作。
无论如何,我的问题是,如何将 rateYo 值传递给我的 CI 控制器? 如果我上面的想法是合理的逻辑,那么你能在这里写出语法应该是什么样子吗?
我想我正在学习 jquery,因为我需要它们,尽管很乱。(我无法集中精力阅读大量的文本/代码,我通过尝试学习得更好)
好的,所以当我在等待任何答案时。 我阅读了有关 W3school 的快速教程。(我发现 w3school 是任何教程的可靠来源,任何其他教程要么太复杂,要么假设读者知道所有让他们感到困惑的知识)
所以我改变了代码:
var rating = $("#review-rating").rateYo("rating");
$("#hidden-rating").val(rating);
我已将上述代码附加到按钮单击事件。
现在我终于可以从控制器中获取值了:
$this->input->post('hidden-rating');
我仍然会等待更好的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.