2016-05-01 2 views
0

setzen Ich verwende dieses rateyo Plugin in meiner Anwendung. Es gibt eine Seite, auf der Benutzer eine Entität bewerten können. Aber bevor ich eine Bewertung gebe, überprüfe ich, ob dieser Benutzer dieser bestimmten Entität bereits eine Bewertung zugewiesen hat und ob der Nutzer dies tut, dann rufe ich den Bewertungswert aus der Datenbank ab und setze ihn so, wie das Plugin sagt. Aber wenn es ein neuer Benutzer ist, kann er seine neue Bewertung abgeben.Wert der Bewertung von Datenbank mit Rateyo Plugin

hier ist der Code, was ich bin der Umsetzung:

$(document).ready(function(){ 
$("#rateYo").rateYo().on('rateyo.set',function(e, data){ 
      $.ajax({ 
       type : "post", 
       url : "PostRatingValue.php", 
       data : { 
        "rating" : data.rating, 
        "peopleid" : celeb_id, 
        "userid" : user_id 
       }, 
       dataType : "json", 
       success : function(response){ 
        if(response.toString() == "true"){ 

         $.growl.notice({ title: "Growl", message: "Rating<b> "+ data.rating +" </b>assigned successfully" }); 
        } 
        else{ 
         $.growl.error({ message: "<b>Unable to assign rating.</b>" }); 
        } 
       }, 
       error : function(response){ 
        $.growl.error({ message: "<b>Something went terribly wrong! :'(.</b>" }); 
       } 
      }); 
     }); 

unten ist der Code, den Bewertungswert zu setzen, wenn es vorhanden ist.

<?php 
      if(isset($fetchRatingIdAndValue['ratingpoints'])){ 
     ?> 
       $("#rateYo").rateYo("option", "rating", <?php echo $fetchRatingIdAndValue['ratingpoints'];?>); 
     <?php  
      } 
     ?> 
}); 

Problem ist, dass, wenn alter Rating gesetzt ist, wird ein Ajax-Aufruf gemacht, die in der Tabelle wieder gleiche Daten einfügt. Ich möchte, dass mein Ajax-Anruf nur funktioniert, wenn ich eine neue Bewertung festlegen oder die vorherige Bewertung bearbeiten muss. Ich finde den Ausweg dafür nicht. Bitte helfen Sie.

Antwort

1

Wenn Sie die Bewertung nach der Initialisierung von rateyo festlegen, wird das Ereignis rateyo.set für das Element ausgelöst. Bitte

tut das nicht, stattdessen Wenn bereits altes Rating vorhanden ist, gibt sie bei der Initialisierung selbst wie

$(document).ready(function(){ 
    $("#rateYo").rateYo({ 

     rating: <?php echo $fetchRatingIdAndValue['ratingpoints'];?> 
    }).on('rateyo.set',function(e, data){ 

     $.ajax({ 
      type : "post", 
      url : "PostRatingValue.php", 
      data : { 
       "rating" : data.rating, 
       "peopleid" : celeb_id, 
       "userid" : user_id 
      }, 
      dataType : "json", 
      success : function(response){ 
       if(response.toString() == "true"){ 

        $.growl.notice({ title: "Growl", message: "Rating<b> "+ data.rating +" </b>assigned successfully" }); 
       } 
       else{ 
        $.growl.error({ message: "<b>Unable to assign rating.</b>" }); 
       } 
      }, 
      error : function(response){ 
       $.growl.error({ message: "<b>Something went terribly wrong! :'(.</b>" }); 
      } 
     }); 
    }); 
}); 

$fetchRatingIdAndValue['ratingpoints']0 enthalten soll, wenn der Benutzer vorher jede Bewertung nicht gegeben hat.

Verwandte Themen