Difficulté d'afficher qq chose avec lien ds une table [Résolu]

Signaler
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
Bonjour Cher FOrum ,

(j'utilise les api de google)

Voilà dans la balise body je déclare une table :

<table border=1>

----,

</td>



</td></tr></tbody></table>

Puis dans la partie JAVASCRIPT je souhaiterai ajouter des mots
(.....^^) dans la table avec un lien particulier pour chacun de ses
mots.

Code qui montre la fct pour ajouter une ligne dont le mot (name) permet en cliquant dessus de créer un événement

function tablee(marker,html) {

// save the info we need to use later for the side_bar

gmarkers[i] = marker;

htmls[i] = html;

// add a line to the side_bar html

alert(side_bar_html);

side_bar_html += + name +
;

i++;

}

function myclick() {

alert('i=' + i);

gmarkers[i].openInfoWindowHtml(htmls[i]);

}

toutes ces fonctions se trouve ds la fct load();

Avt de faire appel à ses fct voici se que je déclare :

var side_bar_html = "";

var gmarkers = [];

var htmls = [];

var i = 0;

//--------------------------

//--Déclération des makers--

//--------------------------

var marker = new GMarker(new GLatLng(46.71471057,-0.36750402));

map.addOverlay(marker);

tablee(marker,"LE MOT")

Enfin Bref le problème est qu'en faite rien ne s'affiche ds ma table ............

J'ai essayé plein plien plein de trucs ..

Merci A+

26 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
ah ?!? j'ai dis ça moi ?
si tu veux mettre du javascrip dans le lien, certes, tu ne dois pas être loin,
( généralement, il "vaut mieux" mettre void : ...href= "javascript:void(fonction_js());"... )
mais si tu veux ajouter du javascript à un évènement sur le td
( ce qui n'est pas du tout la même chose ) :

newCell.on l'évênement voulu =function()    { des ordres javascript;    }
l'évênement voulu : click, mouseover, mouseout... ou autres

       [mon Site][M'écrire]Bul
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
j'ai vu ce que tu voulais dire ;o)
test.onclick = function(){myclick(test.id); return false}
si ton id est généré par le php... c'est son problème [ ;o) ]
coté js... : test.onclick = function() { myclick(this.id); return false; }
il restera peut-être (?) d'autres choses à résoudre
mais on y viendra quand ce sera nécessaire... si ça l'est
          [mon Site] [M'écrire] Bul         
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
bonjour,
>>Bref le problème est qu'en faite rien ne s'affiche ds ma table
euh... le problème c'est qu'il y a des erreurs de syntaxe surtout...

exemple :
side_bar_html += mon Site] [M'écrire]  Bul         
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

D'accord merci pour les liens pour debugger,

mais est ce que tu connaîtrai un code pour ajouter une ligne dans ma table en mettant en plus en lien sur cette ligne.

J'ai trouvé un bout de code sur internet mais je n'arrive pas de tout à mettre un lien :
    var tableau= document.getElementById(" ma_table ");
    var ligne =document.createElement("tr");
    var col=document.createElement("td");
    col.setAttribute("colspan", "4");
    var test=document.createTextNode("nouvelle ligne");
    tableau.appendChild(ligne);
    ligne.appendChild(col);
    col.appendChild(test);
Est ce que tu pourrais m'aider stp
merci
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
bonjour,

    var tableau=document.getElementById("ma_table");
    var ligne=document.createElement("tr");
    var col=document.createElement("td");
    col.setAttribute("colspan", "4");
    var test=document.createTextNode("nouvelle ligne");
    tableau.appendChild(ligne);
    ligne.appendChild(col);
    col.appendChild(test);

soit dans la lignée de ce que tu fais
    var lien=document.createElement("a");
     lien.href="http://www.javascriptfr.com";
     lien.innerHTML="CS";
     col.appendChild(lien);

soit avec les ordres adaptés aux tableaux
    var t=document.getElementById("ma_table");
    var l=t.insertRow(-1);
    var c=l.insertCell(-1);
     c.innerHTML="mon Site] [M'écrire]  Bul         
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

Bonjour Bul3,

Merci pour ton code,
j'ai créer une fct avec ce code :
    var t=document.getElementById("side_bar");
    var l=t.insertRow(-1);
    var c=l.insertCell(-1);
     c.innerHTML="CS";

Le problème est que à partir de la ligne    var l=t.insertRow(-1);  le programme ne s'exécute plus....
Voici la déclaration de mon tableau :
      ----

            

     
       ,
                  

       ,
     
   

Merci bcp
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
de ce que tu nous montre, ça me semble normal....
"side_bar" ? connait pas !

par contre si tu mets ( est-ce ce que tu veux ? )
      tout baigne

>>le programme ne s'exécute plus....
c'est pas qu'il ne s'exécute plus, c'est qu'il signale une erreur

debogage :
<table id=\"aff\" border=\"1\" cellpadding=\"2\" cellspacing=\"2\">----
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger mon Site][M'écrire]Bul
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

Bonjour :)
Exact : <table border="1" id="side_bar">
Comme cela Tout baigne.
Je voudrai améliorer le code suivant  :
    var newRow = document.getElementById('side_bar').insertRow(-1);
    var newCell = newRow.insertCell(i);
    newCell.innerHTML = 'name';
En faite je voudrai que lorsque je clique sur la ligne (de la table) cela me active une fct dans mon script
J'ai pensé à cela :
    var newRow = document.getElementById('side_bar').insertRow(-1);

    var newCell = newRow.insertCell(i);

    newCell.innerHTML = 'javascript:myclick(i)';
function myclick(i) {
blablabla
      }
Mais cela ne marche pas car pour faire un lien il un élément HTML alors que là c'est un noeud texte.
..
Est ce que tu connaîtrai ce code ?
Merci
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
innerhtml, c'est ce qu'on affiche....
pour ajouter une fonction : élément ou objet ou baise.onclick=function() { les ordres javascript; }

          [mon Site] [M'écrire] Bul         
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

Merci pour les précisions,

Hmmmmmm si j'ai bien comprit ca donnerai cela ???? :

    var newRow = document.getElementById('side_bar').insertRow(-1);
    var newCell = newRow.insertCell(i);
    newCell.innerHTML = comment ; //comment est un variable string
var test =document.createElement('a');
test.href= 'javascript:myclick(' + i +')';

Merci
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

function AddRow(marker,comment){
    var newRow = document.getElementById('side_bar').insertRow(-1);
    var newCell = newRow.insertCell(1);
    newCell.innerHTML = 'aaaaaa';
   

baise

.onclick=function() { myclick2(i); return false }
}

function myclick2(i) {
        blablabla
      }
Comme cela ? ca ne fonctionne pas = jpense qu j'ai du me trompé sur :


baise

.onclick

merci
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

Oups, excuse moi j'ai posté le message au dessus juste aprés toi ......

Je vais essayer cela alors :
function AddRow(marker,comment){
    var newRow = document.getElementById('side_bar').insertRow(-1);
    var newCell = newRow.insertCell(1);
    newCell.innerHTML = 'aaaaaa';
    newCell.on click
=function() { myclick2(i); return false }
}

merci
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
euh... baise mais encore ? certes je veux bien, mais avec qui ? ;o))
c'est l'élément qu'il faut mettre, comme je t'ai montré

newCell.onclick=function()    { alert(this.innerHTML);    } // par exemple

( mais ton i..... j'ai comme un gros doute ! ça va probablement te dire undefined !! )

          [mon Site] [M'écrire] Bul         
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

Re,
var test = document.createElement('a');
test.href = '#';
test.id = 'lien' + i;
test.onclick = function(){myclick(test.id); return false}

function myclick(mon_id){
var mon_parame=mon_id.replace(/\D/g,''); //récupére la valeur de i
blabla
}

Jsuis bloqué je voudrais affecter un id spécifique à chaque passage dans la boucle ('lien'+i) puis affecter sur le onClick une référence à cet id plutot qu'à l'indice ....
Est ce que tu vois ce que je voudrais dire ??
Merci !
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

Slt,
Ca y est sa marche comme sur des roulettes. Ty
J'aimerai revenir aux détails du début :
div id=\"side_bar\">
      ----

            

     
       ,
                  

       ,
     
   

En faite les nouvelles lignes créées j'aimerai qu'elles s'affichent sur où c'est marqué en rouge ....
Tu vois ce que je veux dire ??? (c'est possible ?? (j'espere))
Merci
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
euh ?
>>Tu vois ce que je veux dire ???
pas tout à fait...

mais peut-être veux tu dire ajouter/insérer... une ligne, une colonne particulière ?
oui :quelques infos ici
non : un ch'tiot peu plus de précisions ?

          [mon Site] [M'écrire] Bul 
Messages postés
211
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
3 septembre 2009

Resalut,

Hmmmm trés intérressant ton oeuvre sur le lien
En faite (plus clairement ^^). Dans mon tableau, j'ai deux colonnes :
Ma première colonne est réservé à l' id="map"
Dans ma Second colonne (id="Second_colo") je voudrais INSERER (ou ajouter) mes lignes créées.

div id=\"side_bar\">
      ----

            

     
       ,
                  

       ,
     
   

Est-il possible d'ajouter dans cette SECOND colonne mes lignes. ?
J'ai vu que pour "Nettoyer" une colonne (de chacun de ses lignes), ils fallait en faite "détruire" ce qu'il y a à l'intérieur :

(D'aprés ton code) est-ce juste :
function Supp() //~~ suppression ~~
{
for (var l=0;l<tableau.rows.length;l++)
{
tableau.rows[l].deleteCell(Number(document.getElementById("Second_colo").value));
}
break;
}
}

Merci bcp
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
>>je voudrais INSERER (ou ajouter) mes lignes créées.
dans une colonne ?

si oui, il faut y recréer un et les ----
voulues pour tes lignes

<table bgcolor="#ffeebb" border="0">----,           [mon Site] [M'écrire] Bul           
</td>
Messages postés
211
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
3 septembre 2009

Ohhlala,
J'ai regardé sur internet pour pouvoir ajouter les lignes dans une colonne ... (sa m'a l'air pas trés simple)
Comment je fais pour créer le  <tr> et <td> pour mes lignes ?
Merci infiniment
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
je crains que tu ne confondes...

tu veux insérer une colonne pour chaque ligne : regarde mon exemple ( insertCell pour chaque ligne )

tu veux insérer des lignes dans une cellule :
crée y un et pour ajouter des lignes à ce <table>, tu viens de la faire

<table bgcolor=\"#ffeebb\" border=\"0\">----
          [mon Site] [M'écrire] Bul