Jquery et Href

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Jquery et Href

Re: Jquery et Href

par jojolapine » 28 mars 2011, 14:48

J'ajouterais une possible optimisation:
Tu pourrais renvoyer des données au format json dans ton script ajax, ça éviterais d'utiliser un .split('') pas tip top...
Donc ton script js:

Code : Tout sélectionner

$.ajax({ type: "POST", url: "readincidents.php", data: "incid="+incid, success: function(data){ console.log(data.var1); console.log(data.var2); console.log(data.var3); console.log(data.var3.var31); console.log(data.var3.var32); } });
et ton script readincidents.php:
<?php
$datas = array(
    'var1'=>'val1',
    'var2'=>'val2',
    'var3'=>array(
        'var31'=>'val31',
        'var32'=>'val32',
    )
);

echo json_encode($datas);

Re: Jquery et Href

par Ryle » 27 mars 2011, 13:34

C'est dans ton utilisation de jquery qu'est le problème... Lorsque tu fais :
$("a").attr("href", "../genhd/editer.php?intid="+valeurs[0]);
C'est de toutes les balises <a> de ta page que tu modifies le href, donc forcément, elles héritent toutes du même lien. Il faut identifier chacun des liens individuellement et les mettre à jour individuellement...

Pour cela, tu peux utiliser un id, mais il faut que celui-ci soit différent pour chaque lien :
<a href="" id="no_incid0"></a>
<a href="" id="no_incid1"></a>
...

$("#no_incid" + numeroSequentiel).attr("href", "../genhd/editer.php?intid="+valeurs[0]);
Ps : le code html que tu génères n'est pas terrible... une balise font qui s'ouvre mais ne se ferme pas, un attribut "div" collé au milieu d'un lien, et une balise de fin </div> qui ne correspond du coup à rien :)

Jquery et Href

par philphil5710 » 27 mars 2011, 07:48

Bonjour.
Je m'appelle Philippe.
J'ai un petit problème avec une fonction Jquery que j'utilise pour modifier une url.

Au chargement de ma page, j'exécute x fois la fonction:
function get_incident_load(incid)
{
    $.ajax({
   type: "POST",                                          
   url: "readincidents.php",
   data: "incid="+incid,
   success: function(msg){
    
     var valeurs=msg.split(' -- ');
  
     $("#no_incid").append(valeurs[0]+"<br>");

     $("a").attr("href", "../genhd/editer.php?intid="+valeurs[0]);
 

     $("#nom").append(valeurs[1]+"<br>");
     $("#structure").append(valeurs[2]+"<br>");
     $("#categorie").append(valeurs[3]+"<br>");
     $("#item").append(valeurs[4]+"<br>");          

     
     $("#input_no_incid").val(valeurs[0]+"<br>");
     $("#input_nom").val(valeurs[1]+"<br>");
     $("#input_structure").val(valeurs[2]+"<br>");
     $("#input_categorie").val(valeurs[3]+"<br>");
     $("#input_item").val(valeurs[4]+"<br>");               
   }
 });
}

La variable qui pose problème est "no_incid".
J'affiche le résultat dans ma page, sous forme de table:
       echo '<td width="35" ><font size="2"> <a  href="" div id="no_incid"></a></div></td>';
       echo "<input type='hidden' id='input_no_incid' name='input_no_incid'>";
ce qui me donne quelque chose comme:

Code : Tout sélectionner

4561 nom1 123 Gensite Account locked 4822 nom2 671 Téléphone Cascade impossible 5366 nom3 003 Citrix No access ...
mais mon lien pointe toujours vers la dernière valeur de no_incid retournée (càd valeurs[0]).
Je souhaiterais que chaque url générée contiennent sa propre valeur.

Est-ce possible?

Merci d'avance pour votre aide.