11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je viens vers vous car j'ai un petit soucis à l'utilisation de Jquery et des fonctionnalités ajax qu'il offre. Pour vous situer (je développe avec CakePHP) je cherches à faire une chose assez simple, en effet j'ai une page qui liste des enregistrement de ma bdd, pour chaque enregistrement j'ai un lien "Supprimer", ce que j'aimerais c'est supprimer l'entrée correspondant au click et recharger les données dynamiquement.

J'arrive à récuperer le clique et à appeler mon action "X" de mon controlleur "Z" mais je suis confronté à deux problèmes.

Le premier, c'est que je dois récuperer une variable présente dans mon liens de suppression, en effet ces derniers sont de la forme http://www.domaine.com/controlleur/action/?d=xxxxx, je souhaiterais donc récuperer la valeur de d pour la transmettre en ajax à ma page de traitement, mais comment faire ?

Second problème, j'utilise la fonction load() pour modifier le contenu de mon div (et recharger le contenu donc), mais le soucis que j'ai c'est que cette dernière ne modifie par le contenu du div que je passe en argument mais l'intégralité de la page, en effet quand j'inspecte la source après le clique je n'ai que le contenu de mon div d'afficher (visuellement la page s'est bien rechargé car les images et autres n'ont pas bougés mais en inspectant la source il n'y a plus que le div de présent). Est-ce une mauvaise utilisation de load() ou tout simplement que je ne dois pas faire comme cela ?

Dans l'attente de vos réponses, cordialement Smiley cligne
Bonjour,

samsurr a écrit :
Bonjour,

Le premier, c'est que je dois récuperer une variable présente dans mon liens de suppression, en effet ces derniers sont de la forme http://www.domaine.com/controlleur/action/?d=xxxxx, je souhaiterais donc récuperer la valeur de d pour la transmettre en ajax à ma page de traitement, mais comment faire ?
Smiley cligne


pour cette partie j'utilise un plugin jquery bien pratique : http://plugins.jquery.com/project/url_parser

et pour récupérer un paramètre dans l'url :
var toto = $.url.param("d") ;// url plugin doit être chargé bien sûr


et dans l'ajax (en résumé) :

....
  data: "titi="+toto,
  success: function...
....       
Merci pour ton lien PiR2 mais je crois que j'avais déjà testé ce plugin et que j'étais confronté au même problème, en effet je crois qu'il se base sur l'url en cours et non sur l'url visé, car personnellement en l'utilisant comme tu me l'a indiqué, il me met "undefinided" concernant la variable.

J'ai un autre soucis également, je ne parviens pas à transmettre mes variables post (ici je veux passer $_POST['name'] à mon php et ça ne fonctionne pas, variable indéfinie, au passage y'a le ptit morceau de code pour tester ton plugin) :


$(function() {
    $(".ajax-del").live("click", function() {
        //var id = this.href.split("=");
        var toto = $.url.param("d");
        alert(toto);
        $.post(
            "/assistances/supprimer",
            { name: "jean" },
            function(data){
                //affiche le contenu du fichier dans le conteneur dédié
                $('#page_de_contenu').load('/assistances/view');
            });
        });
});
Bonjour,

Pour récupérer le paramètre, si l'url a bien cette forme, à ajouter dans la fonction '.click'

var content_href = $(this).attr('href');
var param_regex = /[^=]*$/gi;
var val_param = content_href.match(param_regex)[0]; /* valeur du paramètre */

Modifié par Shunkin (24 Mar 2011 - 10:33)
Merci pour ton aide shunkin ça fonctionne comme je le souhaites, as-tu une idée pour mon passage de variable via la méthode post ?

Cordialement !
samsurr a écrit :
Merci pour ton lien PiR2 mais je crois que j'avais déjà testé ce plugin et que j'étais confronté au même problème, en effet je crois qu'il se base sur l'url en cours et non sur l'url visé,

Ooups.... tout à fait c'est pour l'url courante qu'il fonctionne... j'ai lu un peu trop vite ta demande, désolé.
pour le second parametre de $.post utilise $('form').serialize()
ca transmettra tes variables sous forme de paires clé/valeur où clé est le name de l'input transmis et valeur sa valeur.