Salut tout le monde ,

j'aimerais passer plusieur paramatrer dans la variable data string mais je sais pas comment faire voici ma fonction en ajax

<script>
$(function(){
$('.refuser').click(function(){
var mon_site = $(this).attr('mon_site');
var dataString = 'mon_site='+mon_site;
var parent = $(this).parent().parent();
$.ajax({
type: "GET",
url: "refus.php",
data: dataString,

beforeSend: function()
{
parent.animate({opacity: 0.30}, "slow");
},
success: function()
{
parent.slideUp("slow",function(){$(this).remove();});
}
});
return false;
});
});

</script>

et ceci est ma button
<a class="refuser" mon_site="<?php echo $_numero;?>" >Refuser </a>

Merci d'avance

3 réponses


Tackacoder
Réponse acceptée

Bonjour,
Déjà, quand tu veux créer un attribut qui n'existe pas, tu fait data-NOM_QUE_TU_VEUX.

<a class="refuser" data-site="<?php echo $_numero;?>">Refuser</a>

et ensuite JQuery a une fonction pour ses attributs data('NOM_QUE_TU_VEUX')
j'ai corrigé le data

var mon_site = $(this).data('site');
$.ajax({
type: "GET",
url: "refus.php",
data: {
site: mon_site
}

dans ton php, tu le recupere avec $_GET'site']

painkillerDev
Auteur
Réponse acceptée

ca marche a merveille exothermique je te remercie ainsi que Tonyweb
sinon je partage mon code pour le partage avec la famille grafikart

<script>

                          $(function(){
    $('.refuser').click(function(){
      var mon_site = $(this).data('site');
       var site_pr = $(this).data('sitepr');
       var site_ref = $(this).data('siteref');
       var site_ref_pr= $(this).data('siterefpr');
      var parent = $(this).parent().parent(); 

         $.ajax({
        type: "GET",
        url: "refus.php",
        data: {
        site: mon_site,
        sitepr: site_pr,
        siteref: site_ref,
        siterefpr:site_ref_pr
        },

        beforeSend: function()
        {
          parent.animate({opacity: 0.30}, "slow");
        },
        success: function()
        {
          parent.slideUp("slow",function(){$(this).remove();});
        }
      });
      return false;
    });
  });

                        </script>

et sur ma button j'ai fait

<a class="button_sites button_sites-danger refuser" title="Refuser l'echange"  
 data-site="<?php echo $_numero;?>" data-sitepr="<?php echo $pr;?>" data-siteref="<?php echo $sug_numero;?>" data-siterefpr="<?php echo $sites_suggeres_pr; ?>">

Je vais essayer de t'expliquer rapidement une méthode plus propre, très proche de la tienne cela dis.

Le bouton :

<a class="refuser" href="ton_url_cible" id="<?php echo $_numero;?>" >Refuser </a>

Le jquery :

$(document).ready(function() {

$(".refuser").live("click",function(){

mon_site = $(this).attr("id");
data = "mon_site="+mon_site;
url = $(this).attr("href");

var parent = $(this).parent().parent(); // Cette ligne est étrange.

$.post(url, { data:data }, function(){
parent.slideUp("slow",function(){$(this).remove();});
});
return false;

});

});

Tu récupère ton post via $_POST"data"];

La fonction dans le $.post s'appel la fonction de "callback" c'est l'emplacement dédié aux exécutions après le $.POST.

La fonction .live() a été remplacé par .on() a partir de la version 1.7 de jquery je te laisserais mettre à jour en conséquence. Pourquoi .live() ? Car il permet de préserver le déclenchement de ton événement même si celui-ci est s'obtient après un click sur un élément appelé de façon asynchrone via l'AJAX ( si tu n'a rien compris ce n'est pas grave xD ).

Si tu as des questions je suis là.

Tu peut aussi visiter mon blog : www.devup.fr et y passer régulièrement car je vais bientôt sortir un tuto sur les post de formulaire via L'AJAX cela pourra donc fortement t'intéresser :)

A bientôt !