Bonjour,
Voilà j'ai un problème avec la fonction $.ajax, je n'arrive pas à l'utiliser pourtant je l'ai déjà utilisé de la manière si-dessous ! Mais je comprends pas pourquoi ça ne marche pas ! Je n'arrive même pas à lancer le alert() lors du success de la fonction $.ajax !
index.html
<?php
session_start();
if ( !isset($_SESSION'access']) ){
$_SESSION'REQUEST_URI'] = $_SERVER'REQUEST_URI'];
header('Location:login.php');
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Photos</title>
<!-- STYLE -->
<link rel="stylesheet" screen="media" href="style.css"/>
<!-- SCRIPT -->
<script src="jquery.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>
</head>
<body>
<?php
if ( !isset($_SESSION'access']) ){
include 'login.php';
}else{
require 'config.php';
extract($_POST);
$r = "
select *
from albums
";
$q= mysql_query($r);
while ( $d = mysql_fetch_assoc($q) ){
echo '<div class="unAlbum">'.$d'name'].' - '.$d'date'].' - <a class="download_album_link" id="'.$d'id'].'" href="albums/'.$d'file'].'">Télécharger les photos</a> ('.$d'click'].' fois téléchargé !)</div>';
}
//echo '<a href="add_album.php">Ajouter un album</a>';
}
?>
</body>
</html>
script.js
$( function(){
$('a.download_album_link').click( function(){
var id = $(this).attr('id');
$.ajax({
type: 'POST',
url: 'plusUn.php',
data: 'id='+id,
success: function(){
alert('ok');
}
});
});
});
plusUn.php :
<?php
require 'config.php';
extract($_POST);
$r = "UPDATE albums SET click = click+1 WHERE id = $id";
$q = mysql_query($r);
?>
Dans ton $.ajax après le success ajoute
error : function(data) { alert('ERROR') }
comme ca tu sauras s'il y a une erreur dans ton appel ajax.
Euh le alert() me renvoie ERROR ce qui semble normal car dans on alert() tu as mis "ERROR" si je mets alert(data) dans le error ça me renvoie "Object object"...
C'est qu'il y a un probleme avec ton fichier plusUn.php, peut etre qu'il manque la connexion à la base de donnée dans ce fichier.
Non elle se trouve dans config.php, si je créer une variable $id avec un identifiant présent dans la base de données, en executant le fichier php la mise à jour se fais donc plusUn.php marche parfaitement... Je vois pas d'ou peux venir le problème...
Comme ca, je vois pas trop ce que ca peut etre, si tu utilises firefox, essaye de voir avec firebug ce qui se passe quand tu cliques sur ton lien.
J'utilise Google Chrome, et il y a aussi une console qui affiche les erreurs mais là Chrome tout comme Firebug sous Firefox me renvoie rien... Comme si je n'arrivais pas à rentrée dans la fonction $.ajax()...
ajoute beforeSend:function(data) { alert('toto') } avant le success dans ton $.ajax juste histoire de voir si t'arrives jusqu'à ton $.ajax
Oui d'accord peut être mais je ne vois pas ou... Etant donner que lorsque je le lance moi même tous marche...
essaye ca dans ton fichier plusun.php
require 'config.php';
$r = "UPDATE albums SET click = click+1 WHERE id = ".$_POST'id'];
$q = mysql_query($r);
après je suis à cours d'idées ^^
dans plusun.php remplaces $q = mysql_query($r); par echo $r;
et dans $.ajax mets success:function(data) { alert(data) } histoire de voir la tete de la requete
ça ne marche pas, le alert() dans success ne marche pas...
$.ajax({
type: 'POST',
url: 'plus.php',
data: 'name='+id,
success: function(data){
alert(data);
}
});
require 'config.php';
$r = "UPDATE albums SET click = click+1 WHERE id = ".$_POST'id'];
echo $r;
//$q = mysql_query($r);
C'est un truc incomprehensible...
Par contre ne fais pas attention j'ai changer le nom du fichier php il s'appelle maintenant plus.php... J'ai tous essayé !
si dans data tu as 'name='+id il faut que tu mettes $_POST'name'] dans ton fichier plus.php
oui en effet mais c'étais aussi un autre test... même en changeant le id par name ça ne marchait pas donc ça ne viens pas de là...