Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [RESOLU] Ajax + jQuery + redirection

Posted by hello66 on 04/10/2013 21:51

Bonjour,

Je suis en train de développer un site internet entièrement à partie de Jelix ; j'ai quelques bases concernant le framework, mais sinon j'apprends au fur et à mesure. J'ai utilisé jZone pour gérer chaque zone de mon site. Les utilisateurs du site peuvent s'identifer et en fonction de leur profil, la zone principale est recharchée.

ma dao utilisateur (profil à 0 si administrateur, 1 si organisateur et 2 si participant) :

 <dao xmlns="http://jelix.org/ns/dao/1.0">
    <datasources>
        <primarytable name="utilisateur" realname="utilisateur" primarykey="mail" />
    </datasources>
    <record>
        <property name="mail" fieldname="mail" datatype="varchar" required="true" maxlength="50"/>
        <property name="password" fieldname="password" datatype="varchar" required="true" maxlength="10"/>
    </record>

ma fonction connection dans mon controller

     function connexion () {

           if (jApp::coord()->request->isAjax()){
               
               $utilisateurFactory = jDao::get("utilisateur");
               $conditions= jDao::createConditions();
               $conditions->addCondition('mail','=',$this->param('login'));
               $conditions->addCondition('password','=',$this->param('password'));
               
               $utilisateurList = $utilisateurFactory->findBy($conditions);
               $utilisateurs = $utilisateurList->FetchAll();
               
               jSession::start();
               $profil = $utilisateurFactory->profil;
                
               if ($profil =='0'){$url= jurl :: get('site_internet~index@classic', array('page'=>'profiladmnistrateur'));}
               else if ($profil =='1'){$url= jurl :: get('site_internet~index@classic', array('page'=>'profilorganisateur'));}
               else if ($profil =='2') {$url= jurl :: get('site_internet~index@classic', array('page'=>'profilparticipant'));};
               header("location: $url");
               
           if (sizeof ($utilisateurs)==1){
                $rep=$this->getResponse('json');
                return $rep; }
           else {return null;}}   
           
    }
    

mon js

 $(document).ready(function () {
	
        $("#connexionForm").submit( function() {

                var $jUrlAjaxConnexion =$("#jUrlAjaxConnexion").val();
		var $login=$("#login").val();
		var $password=$("#password").val();

		var $ajaxRequest= $.ajax({
			type:"POST",
			url: $jUrlAjaxConnexion,
			data: "login="+$login+"&password="+$password});

	$ajaxRequest.done(function() {
			$("#titleForm").text("Bienvenue à toi valeureux Raideur !");
			$("#titleForm").css("color","green");
			$("#connexionForm").css("display","none");

		}); 
	
	$ajaxRequest.fail(function() {
			$("#titleForm").css("color","red");
			$("#titleForm").text("Le couple identifiant/mot de passe est incorrect !");
		});

		return false;
	});


});

Ce que j'ai fait permet à tous les types d'utilisateurs de se connecter, mais ma zone principale n'est pas rechargée... Si vous avez des idées, je suis preneuse.

Merci d'avance de votre aide.

  [Opened] Ajax + jQuery + redirection

Reply #1 Posted by foxmask on 04/10/2013 21:59

Bonsoir,

y a-t-il une raison pour ne pas utiliser ce que le framework propose en terme d'identification utilisateur d'une part, et en terme ajax d'autre part ?


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Ajax + jQuery + redirection

Reply #2 Posted by hello66 on 04/10/2013 22:03

Quand j'ai commencé à utiliser jelix au début de mon projet, je ne connaissais pas le plugin jAuth ; en cours de développement web, nous avons travaillé l'identification via ajax +jquery , j'ai donc choisi la facilité... le truc c'est que maintenant je suis bloquée... et changer pour utiliser jAuth me demanderai beaucoup de travail... or je n'ai pas assez de temps. Donc si je n'ai vraiment pas le choix je le ferai, mais je préfererai éviter.

  [Opened] Ajax + jQuery + redirection

Reply #3 Posted by EricD on 04/10/2013 23:40

Salut, j'avais commencer à répondre en mode pas à pas (comme pour le dernier post), mais en relisant le début il est à mon avis préférable que tu regarde du coté de jCommunity ou de la solution proposé dans la documentation (master_admin).

Si j’était toi, JCommunity permet de faire tous un tas de choses qui te prendront du temps. Comme par exemple un système de changement de password en cas d'oubli ;) Il te permet d'avoir une gestion des droits très agréable.

Pour finir, Dans ton script js : var $jUrlAjaxConnexion =$("#jUrlAjaxConnexion").val(); // du doit surement avoir mieux pour faire passer l’adresse de ta requet ajax.

Tu vérifie seulement si ta requette ajax a retourné une réponse de type 200.

Dans ton controller :

le return false vas lever une erreur au niveau du framework qui ne comprendra pas ce qu'il doit renvoyer.

Le plus simple serait peut être de

function connexion () {
 $rep=$this->getResponse('json'); //tu définit le type de réponse que tu vas renvoyer que ta réponse soit de type positive ou négative
 $rep->data = array('success'=>false); // réponse par default

//si la req est bonne
$rep->data['success'] = true;
//Si pas bonne tu peux ajouter un message ....

//a la fin tu retourne ta reponse
return $rep;
}

Les cours donnés à l'école sont minimaliste (je peux te le dire), tu devrait peut être faire un tour sur le sdz pour comprendre ce qu'est le js. Apres comprendre ce qu'est la library Jquery.

Bonne soirée

 
Page
  1. Ajax + jQuery + redirection