Partage
  • Partager sur Facebook
  • Partager sur Twitter

AJAX + Répertoire de contact

    16 février 2011 à 0:40:03

    Bonjour à tous,

    Je suis en train de réaliser un petit projet personnel. C'est un site web qui a pour rôle d'organiser un répertoire de contacts téléphonique (chaque contact a un id, un nom, un prénom, un type de téléphone et un numéro) . Il y a une base de données qui permet d'enregistrer les contacts. La page principale affiche un tableau contenant tous les contacts. J'aimerais, grâce à AJAX, supprimer un contact en clickant sur une petite image à côté du contact. Je vous met mon code :

    Image où il faut clicker pour supprimer le contact. "$data['id_contact']" est l'id du contact dans la bdd.
    echo "<a href=\"javascript:deleteContact(".$data['id_contact'].");\"><img alt=\"delete\" src=\"view/images/delete.png\"/></a>";
    



    Voici mon fichier js. Il est inclue dans l'en-tête de la page :
    function deleteContact(idContact)
    {
    	var id = encodeURIComponent(idContact);
    	var xhr = geXMLHttpRequest();
    	xhr.open("GET", "deleteContact.php?idContact="+id, true);
    	xhr.send(null);
    }
    
    function getXMLHttpRequest() {
    	var xhr = null;
    	
    	if (window.XMLHttpRequest || window.ActiveXObject) {
    		if (window.ActiveXObject) {
    			try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch(e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		} else {
    			xhr = new XMLHttpRequest(); 
    		}
    	} else {
    		alert("Your browser does not support the XMLHttpRequest object");
    		return null;
    	}
    	
    	return xhr;
    }
    



    Voici le script php appelé dans la fonction deleteContact() :
    <?php
    header("Content-type: text/plain");
    
    if(isset($_GET['idContact']))
    {
    	deleteContact($_GET['idContact']);
    }
    
    Function deleteContact($idContact)
    {
    	$req = $bdd->prepare('DELETE * FROM contact WHERE id_contact=:id');
    	$req->execute(array(
    		'id' => $idContact
    		));
    
    	$req->closeCursor();
    }
    


    Bien entendu la base de données est déjà ouverte.


    Mon problème est que le contact n'est pas supprimé de ma BDD. Je me demandais justement s'il ne fallait pas inclure une bibliothèque dans la page? Si oui, pouvez-vous me donnez le lien pour la télécharger/copier.

    Merci d'avance pour vos réponses :) .
    • Partager sur Facebook
    • Partager sur Twitter
      16 février 2011 à 10:38:32

      Bonjour.

      Tu risques d'être un peu dégouté... ^^'
      var xhr = geXMLHttpRequest(); // Il manque un "t" a "get" comme ça :
      var xhr = getXMLHttpRequest();
      

      Sinon j'ai testé tout marche. (Enfin j'ai testé sans php,j'ai réussi a envoyer une requête a google)
      Voilà, a l'avenir je te conseille de regarder si ton navigateur a pas une console d'erreur. (Et si en plus il sait te lister les requêtes envoyés tu pourra être aux anges :p)
      Sur Firefox tu peux utiliser Firebug, sur Chrome tu peux utiliser Firebug Lite.
      ça doit exister pour les autres navigateurs mais j'ai pas les noms en tête.


      Kazerd
      • Partager sur Facebook
      • Partager sur Twitter
        16 février 2011 à 18:35:08

        Merci pour ta réponse :) , ça marche mieux maintenant.

        Citation : Kazerd

        Tu risques d'être un peu dégouté... ^^'


        C'est vrai que sur le coup je l'ai été un peu ^^

        J'avais fait une erreur, en plus, dans mon code. Dans la fonction deleteContact($idContact) j'avais oublié de passer en paramètre mon objet avec lequel j'ai ouvert la bdd, pour pouvoir faire ma requête DELETE. Tout est résolus et tout fonctionne c'est le principal :)
        • Partager sur Facebook
        • Partager sur Twitter

        AJAX + Répertoire de contact

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown