IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Ajax sur action dans une Fancybox créée par de l'Ajax


Sujet :

AJAX

  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut [AJAX] Ajax sur action dans une Fancybox créée par de l'Ajax
    Bonjour,

    Dans l'ordre :
    1) Un lien sur la page affiche une Fancybox grâce à du code Ajax.
    2) Dans la Fancybox, une image comportant une action Onclick qui lance une fonction Javascript/Ajax pour enregistrer une ligne dans une table SQL.

    Extrait du code de la page :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a 	id="likeThat<?php echo $id_msg; ?>"
    						href="javascript:afficherWhoLike(<?php echo $id_msg.', '.$_SESSION['coords']['id']; ?>);"
    					>

    Extrait du Javascript lancé par le lien :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    function afficherWhoLike(idMessage, idMembreConnecte)
    {
    	$.fancybox.showActivity();
     
    	contenuHTML = $.ajax(
    	{
    		  url: "ajax/wholike.php",
    		  global: false,
    		  type: "POST",
    		  data: ({id_message : idMessage, id_membre_connecte : idMembreConnecte}),
    		  dataType: "html",
    		  async:false,
    		  success: function(msg)
    		  {
    			 //alert(msg);
    		  }
    	 }
    	).responseText;
     
    	$.fancybox(
    		contenuHTML,
    		{
    			'autoDimensions'	: false,
    			'centerOnScroll'	: true,
    			'width'         	: 'auto',
    			'height'        	: 'auto',
    			'transitionIn'		: 'none',
    			'transitionOut'		: 'none'
    		}
    	);
    }

    Extrait du fichier ajax/wholike.php qui génère le code HTML de la Fancybox :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $html .=			'<img src="images/profil/btn_follow_'.$la_langue.'.png"
    								style="cursor: pointer;"
    								onclick="follow('.$id_membre_connecte.', '.$id_votant.', 0);"
    							/>';

    La fonction Javascript follow :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function follow(id_follower, id_following, id_liste)
    {
    	$.ajax(
    			{
    				url: "ajax/addfollow.php",
    				global: false,
    				type: "POST",
    				data: ({idFollower : id_follower, idFollowing : id_following, idListe : id_liste}),
    				dataType: "html",
    				async:false,
    				success: function(retour)
    				{
    					alert("follow");
    					//document.location = '<?php echo $_SERVER[PHP_SELF]; ?>';
     
    				}
    			}
    	);
    }
    Nota : l'alerte s'affiche quand on clique sur l'image donc le code est accédé.

    Extrait du fichier ajax/addfollow.php :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $id_follower = intval($_POST['idFollower']);
    $id_following = intval($_POST['idFollowing']);
    $id_liste = intval($_POST['idListe']);
     
    $sql = "
    	INSERT INTO follow (flw_id_follower, flw_id_following, flw_id_liste)
    	VALUES ($id_follower, $id_following, $id_liste)
    ";
     
    mysql_query($sql) or die ("Erreur SQL : ".mysql_error()."<br />Requête :<br />".$sql);

    L'insertion en BDD ne se fait pas.

    Pour tester, j'ai volontairement mis une erreur dans la requête SQL mais le code ne s'arrête pas sur erreur SQL. On dirait que le fichier ajax/addfollow.php n'est pas exécuté.

    Une idée à me soumettre ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut
    Et en ajoutant dans ton ajax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    error: function() {
    div affichage erreur
     
    },
    tu as un affichage?

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    J'ai fait autrement pour vérifier que la partie Javascript s'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    success: function(retour)
    				{
    					alert("follow");
    					//document.location = '<?php echo $_SERVER[PHP_SELF]; ?>';
     
    				}
    Et le clic sur le bouton situé dans la Fancybox affiche bien l'alerte.
    C'est donc l'appel au fichier ajax/addfollow.php qui ne s'exécute pas.
    Pourquoi ? Ça reste un mystère pour moi !

    EDIT : J'ai trouvé. Il manquait la connexion à la BDD dans le addfollow.php, ce qui fait que le programme essayait de se connecter avec l'utilisateur Apache et MySQL le rejetait logiquement.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Numéroter les lignes dans une requête créée par code
    Par C15nantes dans le forum Access
    Réponses: 14
    Dernier message: 04/05/2017, 15h10
  2. [Python 2.X] Récupérer un fichier dans une fonction créée par une autre fonction
    Par nekcorp dans le forum Général Python
    Réponses: 2
    Dernier message: 04/04/2016, 11h31
  3. Connection et différentes actions dans une BDD access par WINSOCK
    Par muzele dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 21/08/2007, 18h34
  4. Inersert dans une table crée par les cardinalités [*,*]
    Par drasalmed dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/05/2007, 18h27
  5. [AJAX] Récupérer paramètre sur POST dans une servlet
    Par _beber85 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/04/2006, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo