繁体   English   中英

rateYo jquery 插件函数星级评分 codeigniter/php

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM