Bien le bonjour !
J'aurais un souci avec mon code que voici :
1 2
| echo '<span class="adresseIP" id="adresseIP_'.$i.'">'. $ip .'</span>';
echo '<p id="p_localisation_HostIP_'.$i.'" ></p>; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $(document).ready(initialiser_Localisation_API);
function initialiser_Localisation_API(){
$.each($(".adresseIP"),traiterLocalisationIP)
}
function traiterLocalisationIP(donnees){
var adresseIP = $("#"+donnees.id).text();
var separation = donnees.id.split('_');
var indice = separation[1];
$.getJSON("http://api.hostip.info/get_json.php?ip="+adresseIP,analyserDonneesHostIp);
}
function analyserDonneesHostIp(donnees){
$("#p_localisation_HostIP_1").append("<ul>");
liste = $("#p_localisation_HostIP_1 ul");
liste.append('<li>Pays : '+donnees.country_name+'</li>');
liste.append('<li>Ville : '+donnees.city+'</li>');
} |
$i étant l'incrément dans la boucle et $ip un string contenant une adresse IP
Voilà mon problème, je voulais :
1) Faire passer ma variable indice dans la fonction d'en dessous (pas de globales, c'est asynchrone et toujours 4)
2) Ne plus balader de $i ou indice dans le code et faire tout en fonction de currenttargets ou je ne sais quoi dans le style...
3) Faire un truc joli directement dans le PHP pour éviter d'avoir ce document.ready mais plutôt un appel direct lors de la création de la balise p
Quelqu'un dans un autre forum a posté ça (j'ai un peu bidouillé pour voir ce que ça faisait, mais je n'ai rien touché à la partie qui ne fonctionne pas):
remplacer id="adresseIP_'.$i.'" par data-naddresseip="'.$i.'"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $(document).ready(function () {
$('.adresseIP').each(function (key, item) {
console.log(item); // Objet span
console.log($(item).data('nadresseip')); //N° adresse IP
console.log($(item).text()); //adresse IP
$.ajax(function () {
url: 'http://api.hostip.info/get_json.php',
dataType: 'json',
data: {ip: $(item).text()},
success: function (json) {
$("#p_localisation_HostIP_"+$(item).data('nadresseip')).append("<ul>");
liste = $("#p_localisation_HostIP_"+$(item).data('nadresseip')+" ul");
liste.append('<li>Pays : '+json.country_name+'</li>');
liste.append('<li>Ville : '+json.city+'</li>');
}
});
});
}); |
Le logiciel m'indique que la virgule de
url: 'http://api.hostip.info/get_json.php',
devrait être un point-virgule, et ça ne marche pas.
Que dois-je faire pour faire fonctionner ce code ? Dois-je inclure quelque chose en plus pour avoir accès au $.ajax ? Ou sinon, avez vous d'autres/de meilleures pistes ?
Au passage, c'est quoi la différence entre l'ajax et le javascript ? Ce sont des habitudes à prendre en Javascript/JSON ou c'est bien plus que ça ?
Merci d'avance !
Partager