Bonjour,

Je souhaiterais effectuer une requête ajax lorsque je clique sur un lien .
Voici l'exemple du lien :


 <a onclick="fonction1();return false;" alt="activation=1" href= <?php echo("../Controler/controler_liste_utilisateur.php?id=" . $informations_utilisateur['nni'] . "&activation=1")?>>  Activer </a> 
`` `

Ce serait donc une requête ajax de type GET mais je n'arrive pas à faire passer les variables.

Merci d'avance

7 réponses


betaWeb
Réponse acceptée

A ce moment là, essaye plutôt ça :

// HTML
<a class="ajax-link" alt="activation=1" href= <?php echo("../Controler/controler_liste_utilisateur.php?id=" . $informations_utilisateur['nni'] . "&activation=1")?>>  Activer </a>

// JS
var send = function (context) {
  var href = context.getAttribute('href');

  if (!href || (href && 0 === href.length)) {
    return false;
  }

  var uri = href.split('?')[1] || [],
    data = {};

  if (!uri || (uri && 0 === uri.length)) {
    return false;
  }

  uri = uri.split('&');

  uri.forEach(function (item) {
    item = item.split('=');

    data[item[0]] = item[1];
  });

  console.log(data); // Debug des data

  // Ton appel AJAX ici

  return false;
};

var ajax_links = document.querySelectorAll('.ajax-link');

Array.prototype.forEach.call(ajax_links, function (link) {
    link.addEventListener('click', function (e) {
        e.preventDefault();

        send(link);

        return false;
    });
});

Salut,

// HTML
<a onclick="send(this); return false;" alt="activation=1" href= <?php echo("../Controler/controler_liste_utilisateur.php?id=" . $informations_utilisateur['nni'] . "&activation=1")?>>  Activer </a>

// JS
var send = function (context) {
  var href = context.getAttribute('href');

  if (!href || (href && 0 === href.length)) {
    return false;
  }

  var uri = href.split('?')[1] || [],
    data = {};

  if (!uri || (uri && 0 === uri.length)) {
    return false;
  }

  uri = uri.split('&');

  uri.forEach(function (item) {
    item = item.split('=');

    data[item[0]] = item[1];
  });

  console.log(data); // Debug des data

  // Ton appel AJAX ici

  return false;
};

J'obtient un SyntaxError: missing ; before statement au niveau de la première ligne de js (le var send(context))
Je comprend plus ou moins la logique, prendre les différentes informations à partir de l'url dans le href en les splittant.

Autant pour moi, j'ai édité le code (l'erreur de frappe était évidente).
Oui c'est ça, tu split la string et tu récup les infos dont tu as besoin ;)

là du coup, il n'y a plus d'erreur , (tu éditera, il manque une parenthèse a ta première condition)
Cependant, ma page se recharge quand je clique au lieu de juste faire l'appel a la fonction.

Bonjour,

Alors j'obtiens bien dans la console les données dont j'ai besoin.
il ne me reste plus qu'a faire l'ajax get.
Si j'ai bien compris, on selectionne tous les liens de classe ajax-link et on effectue la fonction send dès qu'une action click se produit dessus?

Voilà c'est ça ;)