In all Entertainment sites, Star Rating is a common phenomena. We need to use star rating for rating different resources like videos, articles, thesis, posts even sometimes persons. JQuery has an excellent Star Rating plugin, which I recently use with PHP CodeIgniter. This is very simple to integrate with controller and show high quality rating options.
Jquery Call:
$(function() { $('.auto-submit-star').rating({ required: true, callback: function(value, link) { $.ajax({ type: "post", url: site_url + "user/view/star", dataType: "json", data: "&video=" + $('#video_url').val() + "&rate_val=" + value, success: function(e) { $.jGrowl(e.code + "<br>" + e.msg); } }); } });
Controller Method:
public function star() { $rate = $this->input->post("rate_val", true); $video_url = $this->input->post("video", true); $this->load->model("Model Name"); $video_id = $this->model_name->get_video_id($video_url); unset($this->layout); //Block template Layout if (get_user_id()) //get_user_id() return login user id { if (!$this->model_name->is_video_rated(get_user_id(), $video_id)) { $data = array("video_id" => $video_id, "user_id" => get_user_id(), "videos_rating_value" => $rate, "videos_rating_date" => "" . date("Y-m-d H:i:s") . "" ); if ($this->model_name->insert_rating($data, $video_id, $rate)) { echo json_encode(array("code" => "Success", "msg" => "Your Video Rating has been posted")); } else { echo json_encode(array("code" => "Error", "msg" => "There was a problem rating your video")); } } else { echo json_encode(array("code" => "Error", "msg" => "You have already rated this video")); } } else { echo json_encode(array("code" => "Error", "msg" => "You have to login to rate the video")); } exit(0); }
Presentation View:
if (!get_user_id()) //Check if user logged in { $radio_level = "disabled"; } else { $radio_level = " "; } for($i = 1;$i <= 5;$i++) { if ($i == round($row["total_rate"])) { ?> <input class="auto-submit-star" type="radio" name="rating" <?php echo "$radio_level"; ?> value="<?php echo $i; ?>" checked="checked"/> <?php } else { ?> <input class="auto-submit-star" type="radio" name="rating" <?php echo "$radio_level"; ?> value="<?php echo $i; ?>"/> <?php } } //end of for ?>
Its a very cool rating JQuery plugins.
For demo click
This post first appeared on PathFinder's Weblog | Personal Weblog For Kazi Abdullah Al Mamun, please read the originial post: here