Bonjour,

J'essaie de mettre en place un système de notation (avec un plugin jquery nommé jRating) mais celui-ci ne marche pas du tout. J'ai vraiment retourné le plugin dix fois et je ne comprend pas ce qui m'échappe. Est il possible que ce soit cakePHP qui empèche le plugin de fonctionner normalement ?

Merci d'avance.

Cordialement,
Damien.

2 réponses


BenFarhat
Réponse acceptée

Moins tu mets d'informations lors de la présentation de ton problème et moins l'on peut t'aider.
Quelques détails sur ta config, le model utilisé, tes controllers, ton appel au plugin jquery, et qu'est ce qui ne fonctionne pas? l'appelle ajax, le rendu?
Bref, d'ici la pour ton système de notation, je présuppose en principe qu'en cliquant sur la note ou en la rentrant manuellement (tu devrais également mettre le lien vers le plugin qu'on voit à quoi il ressemble) ca sera un appelle ajax vers une action de ton controller qui va changer la note dans ta base de donnée

niveau View ca sera surement un appel ajax $.Get qui va charger l'url "Model/notation" et qui va envoyer comme paramètres ton input ou il y a la note $('input.note').val();

Au niveau du controller

public function notation($id = null,$note= null) {      
        $this->Model->id = $id;
        if (!$this->Model->exists()) {
            throw new NotFoundException("Opps Information / modèle inexistant !"));
        }
                if ($note==null) return false;
        $this->Model->read(null, $id);
        $this->Model->saveField('note',$note);
        $this->redirect(array('action' => 'index'));
    }

D'ici la j'attends le reste des informations :)

northix
Auteur
Réponse acceptée

Désolé ne ne pas avoir mis plus d'information j'étais vraiment perdu à l'époque.

J'ai trouvé comment faire et voici la solution. Même si cela concerne très peu cakePhp cela pourrait en intéresser.

Il faut dans le fichier php (fournie par le plugin) encoder en json la note et l'identifiant du groupe d'étoile (si on veut avoir plusieurs notes sur la même page).

Ensuite dans le fichier JS (fournie par le plugin) il faut faire :

function(data) {
                            if(!data.error)
                            {   
                                if(data.star_id==1){
                                    $('#form_note_acceuil').val(data.rate);
                                }
                                if(data.star_id==2){
                                    $('#form_note_prix').val(data.rate);
                                }
                                if(data.star_id==3){
                                    $('#form_note_enseignement').val(data.rate);
                                }
                                if(data.star_id==4){
                                    $('#form_note_vehicule').val(data.rate);
                                }
                                if(data.star_id==5){
                                    $('#form_note_attente_examen').val(data.rate);
                                }

Cela permet d'envoyer la note au bon champ (hidden) du formulaire. Ensuite on envoie le formulaire et cakePHP fait le reste en enregistrant le tout dans la BDD.

Voila. Merci pour ton aide.