javascriptes rangsorolás
Sziasztok!
Találtam a neten egy rangsoroló alkalmazást, amely csillagokat használ.Sajnos csak az a része működik, hogy megjeleníti a csillagokat egy alapbeállításként megadott rangsorolással, amit rákattintva meg tudunk változtatni. Mivel nem értek a js-hez, ehhez a megváltoztatott értékhez nem tudok „hozzáférni” és így elmenteni. Ebben kérném szíves segítségeteket.
rating.phpratingtest.phpJavascript
■ Találtam a neten egy rangsoroló alkalmazást, amely csillagokat használ.Sajnos csak az a része működik, hogy megjeleníti a csillagokat egy alapbeállításként megadott rangsorolással, amit rákattintva meg tudunk változtatni. Mivel nem értek a js-hez, ehhez a megváltoztatott értékhez nem tudok „hozzáférni” és így elmenteni. Ebben kérném szíves segítségeteket.
rating.php
- class Rating {
- var $starCount = 5;
- var $picPath = 'elemek/img/';
- var $picWidth = 16;
- var $scriptPath = 'elemek/rating.js';
- var $divClass = 'RatingContainer';
- function Rating($name) {
- $this->__construct($name);
- }
- function __construct($name) {
- $this->name = $name;
- $this->value = null;
- }
- function setValue($float) {
- $this->value = (float)$float;
- }
- function showHTML() {
- global $random;
- return '<script type="text/javascript" src="' . $this->scriptPath . '"></script>
- <input type="hidden" name="' . $this->name . '" id="' . $this->name .'" value="' . $this->value . '">
- <div class="' . $this->divClass . '" id="' . $this->name . 'divid" style="width:' . $this->picWidth*$this->starCount . '"></div>
- <script type="text/javascript">var object_' . $this->name .' = new Rating("' . $this->name . '","' . $this->starCount . '","' . $this->picPath . '"); </script>';
- }
- var $name;
- var $value;
- }
- <html>
- <head>
- <style type="text/css">
- .RatingContainer { }
- </style>
- </head>
- <body>
- <?php
- require_once('Rating.php');
- $r = new Rating("a");
- $r->setValue(0);
- echo $r->showHTML();
- $r = new Rating("b");
- $r->setValue(0.5);
- echo $r->showHTML();
- $r = new Rating("c");
- $r->setValue(1);
- echo $r->showHTML();
- $r = new Rating("d");
- $r->setValue(1.5);
- echo $r->showHTML();
- ?>
- </body>
- </html>
- function Rating(hiddenId,starCount,picPath) {
- var div;
- var hidden;
- var fullStar;
- var emptyStar;
- var halfStar;
- var coloredStar;
- var starCount;
- var selected;
- this.starCount = starCount;
- this.div = document.getElementById(hiddenId + "divid");
- this.hidden = document.getElementById(hiddenId);
- this.fullStar = picPath + "fullstar.png";
- this.emptyStar = picPath + "emptystar.png";
- this.halfStar = picPath + "halfstar.png";
- this.coloredStar = picPath + "coloredstar.png";
- if(this.div && this.hidden) {
- this.selected = parseFloat(this.hidden.value);
- var imageSrc;
- for(var i = 0; i<this.starCount; ++i) {
- if( (i < this.selected && i+1 <= this.selected) || (i+1 == this.selected )) {
- imageSrc = this.fullStar;
- }
- else if(i < this.selected && i+1 > this.selected) {
- imageSrc = this.halfStar;
- }
- else {
- imageSrc = this.emptyStar;
- }
- this.div.innerHTML += '<img onClick="object_' + hiddenId + '.Click(' + (i+1) +');" onMouseOver="object_' + hiddenId + '.MouseOver(event);" onMouseOut="object_' + hiddenId + '.MouseOut();" style="border: 0px;" id="' + hiddenId + '_star' + i + '" src="' + imageSrc + '" alt="' + (i+1) + '"></a>';
- }
- }
- else {
- alert("Rating: Div element not found : " + hiddenId);
- }
- this.Click = Click;
- this.MouseOver = MouseOver;
- this.MouseOut = MouseOut;
- this.getEventSource = getEventSource;
- function getEventSource(event) {
- if(event) {
- if(event.srcElement) {
- return event.srcElement;
- }
- else if(event.target) {
- return event.target;
- }
- else {
- alert("Rating: There is no Target of Event");
- }
- }
- else {
- alert("Rating: There is no Event Object");
- }
- }
- function Click(clicked) {
- this.selected = clicked;
- this.hidden.value = clicked;
- for(var i=0; i < this.starCount; ++i) {
- var element = document.getElementById(this.hidden.name + '_star'+ i);
- if(element) {
- if(i < this.selected) {
- element.src = this.fullStar;
- }
- else {
- element.src = this.emptyStar;
- }
- }
- else {
- alert("Stars Not Found: " + this.hidden.name + '_star'+ i)
- }
- }
- }
- function MouseOver(event) {
- var overPicture = this.getEventSource(event);
- var color = 1;
- for(i=0; i < this.starCount; ++i) {
- var element = document.getElementById(this.hidden.name + '_star'+ i);
- if(element) {
- if( color == 1 ) {
- element.src = this.coloredStar;
- }
- else {
- element.src = this.emptyStar;
- }
- if(element == overPicture) {
- color = 0;
- }
- }
- else {
- alert("Stars Not Found: " + this.hidden.name + '_star'+ i)
- }
- }
- }
- function MouseOut() {
- for(i=0; i < this.starCount; ++i) {
- var element = document.getElementById(this.hidden.name + '_star'+ i);
- if(element) {
- if( (i < this.selected && i+1 <= this.selected) || (i+1 == this.selected )) {
- element.src = this.fullStar;
- }
- else if(i < this.selected && i+1 > this.selected) {
- element.src = this.halfStar;
- }
- else {
- element.src = this.emptyStar;
- }
- }
- else {
- alert("Stars Not Found: " + this.hidden.name + '_star'+ i)
- }
- }
- }
- }
JS