Petit soucis pour faire une chose [Résolu]

Signaler
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,
je suis nouveau, et j'ai un ptit problême à faire résoudre

j'ai un site web
avec un super tableau qui fait une certaine taille (80 cases en tout)

voici un bout du code

<td width="40">#thumb</td>

<td width="40">#thumb</td>

Actuellement lorsqu'on passe sur la case on obtient un popup contenant l'image plus grande... jusque là tout va bien
Ce que je voudrais c'est quand on clique sur une case cela remplisse avec une valeur qui change à chaque case (ça je la mets à la main) exemple
click sur model_001 et ca met A1 (en majuscule)

dans un input text plus bas dont la définition est ici
<input type="text" name="id[txt_7]" size="32" maxlength="32" value="" id="attrib-7-0" />

donc comment faire en javascript sans recharger la page, pour mettre une valeur AUTOMATIQUEMENT quand on clique sur une image...

Merci d'avance

19 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
de mémoire d'Alzheimer ce doit être .parentNode qui fonctionnne aussi avec IE.

tu pouvais aussi faire :

function modl( lig, col)
{     document.getElementById("attrib-7-0").value=lig+"/"+col; }

Cordialement     Bul [mon Site] [M'écrire], <!--
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

Merci beaucoups

je mets le code complet 'enfin juste les parties utiles'

et je valide ta réponse :)

TESTER SOUS IE & FIREFOX sans problême

javascript
<script type="text/javascript"><!--
function modl( lig, col)
{ document.getElementById("attrib-7-0").value=lig+"/"+col; }
// --></script>

et
appel de la fonction
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr height="15">
<td width="20" height="15">&nbsp;</td>
<td onclick="modl(this.parentNode.rowIndex,this.cellIndex);" width="40">A</td>

ce qui mets dans le input ayant pour id "attrib-7-0" : 0/1 col
ce code bien entendu nécessite des petites adaptations pour l'usage que vous voudriez en faire

Merci encore à bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,

>>Actuellement lorsqu'on passe sur la case on obtient...
  quelle case ?

>>comment faire en javascript sans recharger la page, pour mettre une valeur AUTOMATIQUEMENT quand on clique sur une image
en général, le javascript ne recharge pas la page, sauf à le lui demander

Bul  [mon Site] [M'écrire], <!--
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

oups j'ai peut être pas été assez précis

- mon tableau fait 8x10
chaque case contient une image, avec un code CSS pour un petit popup (#thumb)
je voudrais quand on click sur une case (l'image) que cela remplisse le input text plus bas

donc exemple

__A B C D E
1 X
2 O P
3
4
5
si je clique sur X : je voudrais que dans le input text cela marque A1
si je clique sur O : A2
si je clique sur P : B2
etc...
en gros je vais envoyer les coordonnées de l'image dans mon tableau sur un input..

merci en espérant avoir été plus clair et précis
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
donc tu as une balise ?
oui : tableau.rowIndex c'est le n° de ligne, cellIndex le n° de colonne
<table width=\"100%\" bgcolor=\"#ffeebb\" border=\"0\">----
Cordialement          Bul     [mon Site] [M'écrire], <!--
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

merci mais cela ne m'aide pas plus qu'avant
voici un résumé de ma page

- TABLEAU (popup sur image)
- INPUT TEXT (à remplir à la main en regardant le tableau et tapant manuellement les coordonnées de l'image voulu)
- ENVOYER

ce que j'aimerai
-TABLEAU (popup sur image, + click qui permet de remplir le input)
- INPUT TEXT (se remplit automatiquement ou se remplit à la main)
- ENVOYER

je ne sais pas du tout le faire en Javascript...  enfin ce truc là je ne sais pas faire...
click -> update de l'input...

ps: si maintenant y'a un moyen de le faire automatiquement sans avoir à taper un truc genre fonction ou l'on envoie en hardcode direct mais que cela soit évolutif, c'est top

Merci d'avance pour votre (ou ton) aide
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
tableau ? tu parles d'une balise =en html ? déjà demandé mais sans réponse alors...

si oui : récupérer l'évênement onclick sur les cellules
           ronwIndex, cellIndex sont les coordonnées de cette cellule.

que fais- tu qui plante ? tu as un message d'erreur ?
avec tous les navigateurs ? sur un particulier ?
on peut voir ton code ? ( enfin, un extrait, juste le nécessaire ! )

<table width=\"100%\" bgcolor=\"#ffeebb\" border=\"0\">----
CordialementBul[mon Site][M'écrire], <!--
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

je n'ai pas fait de code simplement... je voudrai savoir si quelqu'un pouvait m'écrire ou me donner un exemple
je ne demande pas tout le code complet
juste comment faire pour récuperer le onclick
et comment changer la valeur de l'input

le code c'est celui que j'ai mis plus haut

désolé de pas avoir dit

oui c'est une TABLE
... début du code très long avant....
<td width="40">#thumb</td>
<td width="40">#thumb</td>

...... code ..... très long .....
<input type="text" name="id[txt_7]" size="32" maxlength="32" value="" id="attrib-7-0" />

.... fin...

voilà si je pouvais avoir un
javascript avant ou après le tableau qui change la valeur de l'input en fonction du click fait
d'ailleur je me demande puis -je mettre ma class sur a href
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ah ben mon garçon, va falloir te prendre par la main et
    au moins commencer un ch'tiot quelque chose.
tout le monde t'aidera à mettre au point, peu te le feront
( un exemple ce serait te le faire )
mais on ne sait jamais...

Cordialement     Bul  [mon Site] [M'écrire], <!--
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>juste comment faire pour récuperer le onclick
<balise... onclick= " des ordres javascript "...  >
>>et comment changer la valeur de l'input
l'input_en_question.value ="ce que tu veux";
Cordialement     Bul  [mon Site] [M'écrire], <!--
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

pas besoin d'être comme cela, j'ai pas demandé un code complet je me prends par la main comme un grand
donc en gros je met
<td onclick="fonctionjs(rowindex,cellindex)">

et
<script>
input.en.question.value=var1&var2;

c'est de ce genre là donc ?
ca devrait me remplir mon input correctement
mais le nom de l'input n'est til pas un frein "id[txt_7]" car y'a tout un script PHP derrière le code en question...
donc si je suis bien l'affaire

id[txt_7].value=var1.var2 (ou var1&var2) ('j'ai un trou de mémoire pour concatener')
si c'est bien ça merci pour votre aide je vérifie et je vous tiens au courant
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

voila mon retour:

le script
<script type= "text/javascript"><!--
function modl() {
var tmp=""
 for (var i=0; i</script>

l'appel de fonction
<td onclick="modl(this.rowIndex + 1,this.cellIndex + 1)" width="40">A</td>

l'erreur
txt_7 is not defined
Line 203

l'input dans les sources
<div class ="wrapperAttribsOptions">
<h4 class="optionName back"><label class="attribsInput" for="attrib-7-0">Référence motif</label></h4>
<div class="back">
<input type="text" name="id[txt_7]" size="32" maxlength="32" value="" id="attrib-7-0" />
</div>

sachant que le nom de l'input ne peut pas être changé...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>pas besoin d'être comme cela,
euh ? je suis comment ?

>j'ai pas demandé un code complet
je n'aurais pas fourni.

>je me prends par la main comme un grand
c'est bien.

>>fonctionjs(rowindex,cellindex)

les navigateurs ne vont pas aimer....     rowindex ça n'existe pas.
déjà c'est rowIndex et :  de quelle balise ?  
élément.rowIndex
quelques explication ici

et elle est où la fonction fonctionjs ?

>>input.en.question.value=var1&var2;
ne tente pas d'inventer... & inconnu en javascript c'est + qu'il faut utiliser

>>"id[txt_7]"
bof... c'est bien name=
"id[txt_7]" , on est d'accord ?
document.name_du_formulaire["
id[txt_7]
"].value
si c'est...  un 'ID,
document.getElementById("
id[txt_7]").value

CordialementBul[mon Site][M'écrire], <!--
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

L'appel fonctionne mais
le JS veut pas mettre à jour l'input

---- js
j'ai essayé cellindex, rowindex, columnindex (merci de ne pas prendre en compte la casse quand j'écris pas dans le CODE) et voici les résultat
- rowindex et cellindex : l'alerte donne : NaN2 sur la case se trouvant sur la ligne 1 colonne 2
- rowindex et columnindex : l'arlete donne : NaNNaN sur cette même case

voici le code
<script type= "text/javascript"><!--
function modl() {
var tmp=""
for (var i=0; i

// --></script>

(sachant que l ID de l'input est "attrib-7-0")

voici l'appel dans le tableau (je ne mets pas toutes la tables elle fait 300 lignes...
<table border ="0" cellspacing= "0" cellpadding="0">
<tbody>
<tr height="15">
<td width="20" height="15">&nbsp;</td><td onclick"modl(this.rowIndex + 1,this. ou cellIndex) width"40">A</td>

voilà

j'ai comme erreur
NaNNaN ou NaN2 (ce qui veut dire que le cellindex fonctionnerait mais pas le rowindex)
et

document.getElementById("attrib-7-0").tmp is undefined

texte = document.getElementById("attrib-7-0").tmp.value;

en espérant avoir été complet cette fois, et en espérant qu'on puisse m'aider à me dépatouiller

PS: je fais que du PHP et très peu de javascript, je ne tente pas d'inventer un signe de concatenation mais quand tu bosses sur EXCEL, PHP, SQL ... tu confonds un peu les sigles de concatenations normal non
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
<hr size= "2" width="100%" />

... onclick="alert(this.parentElement.rowIndex+'\t'+this.cellIndex);"
essaye avec un onclic... tu mettras après la fonction que tu veux.

tu n'as pas été voir sur le lien donné !  c'est fait comme ça

<hr size ="2" width= "100%" />
texte = document.getElementById("attrib-7-0").tmp.value;

si je comprend tu as des id attrib-7-0
-0 à  attrib-7-n
texte = document.getElementById("attrib-7-0"+tmp).value;

<hr size="2" width="100%" />
for (var i=0; imon Site] [M'écrire], <!--
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
euh... j'ai envoyé trop vite....
si l'id est = "attrib-7-0"
alors utiliser : texte = document.getElementById("attrib-7-0").value;

CordialementBul[mon Site][M'écrire], <!--
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
mais... texte c'est quoi ? et qui a-t-il dans document.getElementById("attrib-7-0").value; ?

ce n'est pas le contraire que tu veux faire ?
charger document.getElementById("attrib-7-0").value; ?

dans ce cas document.getElementById("attrib-7-0").value="ce que tu veux";
( et pourquoi pas ton tmp d'ailleurs )

CordialementBul[mon Site][M'écrire], <!--
Messages postés
9
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
24 septembre 2008

Merci pour toutes ces réponses
A on avance je viens de faire une découverte
Voici le nouveau Code
[javascript]
<script type= "text/javascript"><!--
function modl() {
var tmp;
 for (var i=0; i</script>

et l'appel de la fonction
<td onclick=" modl(this.parentElement.rowIndex+'t'+this.cellIndex); " width ="40">A</td>

Et voici notre soucis maintenant
Sous Internet Explorer
--- le input est bien changé en undefined0t1 (c'est pas encore totalement ce que je veux mais c'est un début, le reste je me débrouillerais pour changer en A0, A1 etc... suivant la case cliquée)

Sous Firefox 3 et autre version
--- Firebug
this.parentElement is undefined
http://www.exothaistore.com/store/index.php?main_page=product_info&cPath=6&products_id=11&zenid=c7d0ee0b533fa910b853ceee8a7c2473/event/jOorsZ0AtcuK%2Bwl6yBAh6Q%3D%3D
Line 2

J'ai pas encore regardé si y'avait un code alternatif, (car je viens de me reveiller, et je dois bouger ce jour  mais je regarderai après) PS: je ne vis pas en france mais en thailande (GMT +7)

merci encore ça avance :) après je retirerais le CSS du A href... et ca sera tel que je le veux
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
nickel et merci pour le retour.
Cordialement     Bul [mon Site] [M'écrire], <!--