我正在使用Yii Framework并尝试在我的gridview上启用CStarRating。在输出HTML源代码中,我有以下内容:
<tr class="odd">
<td>Bob</td><td>
<span class="rating" id="6">
<input id="6_0" value="1" type="radio" name="6" />
<input id="6_1" value="2" type="radio" name="6" />
<input id="6_2" value="3" type="radio" name="6" />
<input id="6_3" value="4" type="radio" name="6" />
<input id="6_4" value="5" type="radio" name="6" />
</span>
</td>
</tr>
<tr class="even">
<td>Peter</td>
<span class="rating" id="9">
<input id="9_0" value="1" type="radio" name="9" />
<input id="9_1" value="2" type="radio" name="9" />
<input id="9_2" value="3" type="radio" name="9" />
<input id="9_3" value="4" type="radio" name="9" />
<input id="9_4" value="5" type="radio" name="9" />
</span>
</td>
</tr>
在HTML正文中,我有以下内容:
<script type="text/javascript">
jQuery(function($) {
jQuery('#6 > input').rating({'callback':function(){
url = "clients/update";
jQuery.getJSON(url, {id_client: '6', val: $(this).val()},
function() {
if (data.status !== "success"){
alert("error");
}});}});
jQuery('#9 > input').rating({'callback':function(){
url = "clients/update";
jQuery.getJSON(url, {id_client: '9', val: $(this).val()},
function() {
if (data.status !== "success"){
alert("error");
}});}});
});
</script>
但是当我点击明星时没有发生任何事情。我是JQuery和JSON的新手,所以任何帮助都会非常感激。谢谢!
答案 0 :(得分:0)
忘记HTML和jQuery。使用Yii,您可以使用此行(或类似名称)调用评级星:
$this->widget('CStarRating',array('name'=>'rating'));
如果您想在CallBack
上添加Rating Stars
,请在options数组中添加回调,如下所示:
$this->widget('CStarRating',array('name'=>'rating','callback'=>'myFunctionCallBack'));
点击星号(see this)时会执行此回调。
Yii CStarRating
是基于jQuery Star Rating
的小部件,您使用jQuery扩展执行的所有操作都可以使用Yii小部件。所以请look here更多地了解扩展名。
如果您想了解有关该小部件的更多信息(我建议您这样做),请查看文档here。
使用小部件的一些例子:
一些属性:
<?php
$this->widget('CStarRating',array(
'name'=>'rating_1',
'value'=>'4',
'minRating'=>1,
'maxRating'=>10,
'starCount'=>10,
));
?>
使用Ajax:
<?php
$this->widget('CStarRating',array(
'name'=>'star_rating_ajax',
'callback'=>'
function(){
$.ajax({
type: "POST",
url: "'.Yii::app()->createUrl('cstarrating/ajax').'",
data: "star_rating=" + $(this).val(),
success: function(data){
$("#mystar_voting").html(data);
}})}'
));
echo "<br/>";
echo "<div id='mystar_voting'></div>";
?>
有关更多示例,您可以看到this article,将会有所帮助。