[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:
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:
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:
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:
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:
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. :cry:
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 ?