16-04-2008, 03:48 PM
(Modification du message : 16-04-2008, 04:00 PM par Sephi-Chan.)
Je te déconseille d'utiliser empty() puisque dans le cas où ton idenfiant est 0, tu ne passes pas le test. Mais je doute que ce cas puisse arriver en pratique puisque les identifiants en base de données commencent généralement à 1. Le problème peut survenir par contre si tu changes de support de données tels que XML, JSON, etc. Tu peux par contre utiliser isset(), qui conviendra très bien.
Le reste semble bon, mais fais par contre attention à la fiabilité des données. Ajax te transmet la données, mais rien ne te dit qu'elle n'a pas été altérée entre le navigateur et le serveur, pense donc à vérifier si la personne qui appelle cette requête est autorisée à le faire pour la ressource envoyée au script.
Pour faire remonter les erreurs, tu peux utiliser le fait que toute sortie textuelle sera contenu dans la variable de réponse (captée par l'événement success, ici je l'ai nommée response). Tu peux donc si tu le souhaites renvoyer ton message d'erreur comme ça. Tu écris (avec echo) l'erreur (par exemple
Le reste semble bon, mais fais par contre attention à la fiabilité des données. Ajax te transmet la données, mais rien ne te dit qu'elle n'a pas été altérée entre le navigateur et le serveur, pense donc à vérifier si la personne qui appelle cette requête est autorisée à le faire pour la ressource envoyée au script.
Pour faire remonter les erreurs, tu peux utiliser le fait que toute sortie textuelle sera contenu dans la variable de réponse (captée par l'événement success, ici je l'ai nommée response). Tu peux donc si tu le souhaites renvoyer ton message d'erreur comme ça. Tu écris (avec echo) l'erreur (par exemple
Code PHP :
<?php
if(isset($_POST['idToDelete']) && is_numeric($_POST['idToDelete'])){
mysql_connect('localhost', 'root', '');
mysql_select_db('cdb');
$query = sprintf(
"DELETE
FROM test
WHERE id = %d;",
(int) $_POST['idToDelete']
);
$sql = mysql_query($query);
if(mysql_affected_rows() == 1){
echo "Ligne supprimée : ".$_POST['idToDelete'].".";
}
else {
echo "Aucune lignée n'a été supprimée.";
}
}
?>
Si tu préfères la jouer gourou et te servir des codes HTTP (200, 301, 302, 404, 500, etc.), tu peux les consulter sur [Wikipédia] Liste des codes HTTP.
Ton objet peut alors avoir ce genre de tronche :
Code PHP :
<?php
$.ajax({
url : 'deleteRow.php',
type : 'POST',
dataType : 'text',
data : {'idToDelete' : idToDelete},
success : function(response){
},
complete : function(ajaxObject){
var status = ajaxObject.status;
if(status == 200){
alert("La mise à jour s'est effectuée correctement.\n" + ajaxObject.responseText);
}
if(status == 404){
alert("La page distante n'a pas été trouvée.");
}
}
});