traiter apres innerHTML

Mammouth du PHP | 1311 Messages

22 déc. 2005, 20:33

salut
le titre est pourri mais bon Sad

voici mon probleme j'insere dans ma page un formulaire via cette commande
Code:
document.getElementById('info').innerHTML=buffer;

avec une autre fonction je voudrai modifier mon formulaire
j'ai essaye
Code:
document.getElementsByTagName('check').length)

mais il renvoi 0

comment je peut faire pour manipuler mes elements??

ou comment utiliser document.write pour mettre mon code dans une balise precise et que cela soit compatible ie et ff

Mammouth du PHP | 19672 Messages

22 déc. 2005, 20:40

Tu voudrais manipuler quoi au juste: la valeur des attributs ou la valeur des éléments eux-même ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

22 déc. 2005, 20:42

je voudrai recuperer mes checkbox et modifier le css

je voudrai acceder a ce code
	buffer+='<tr id="ligne'+node[i].getAttribute('name')+'" style="background-color:';
			if(node[i].getAttribute('auth')=="1"){
				buffer+='green">';
			}else{
				buffer+='red">';
			}
			buffer+='<td>'+node[i].getAttribute('module')+'</td>';
			buffer+='<td>'+node[i].getAttribute('action')+'</td>';
			var id=new Array();
			//id[i]=alert(node[i].getAttribute('name'));
			if(node[i].getAttribute('auth')==1){
				buffer+='<td><input type="checkbox" name="check" value="'+node[i].getAttribute('name')+'" checked="checked" onclick="Apermit('+node[i].getAttribute('name')+');"/></td>';
			}else{
				buffer+='<td><input type="checkbox" name="check" value="'+node[i].getAttribute('name')+'" onclick="Apermit('+node[i].getAttribute('name')+');"/></td>';
			}
		}
		buffer+='</tr>';
	}
	buffer+='</table></form>';
	document.getElementById(args[0]).innerHTML=buffer;
a la limite ce qui m'arrenge le plus c'est d'ecrire ce code dans une balise specifier
avec document write
je crois que je vais devoir passer a createElement :?

Mammouth du PHP | 19672 Messages

22 déc. 2005, 20:51

Ben voilà ce que je fais pour le vérifier, à toi d'adapter pour tes besoins. Un détail cependant, j'utilise systématiquement des attributs id dans les éléments de mon formulaire et dans la balise <form> également
for(var i in document.forms['publier_ann'].elements['ann_lgt_ch_incl'])
{
    if(document.forms['publier_ann'].elements['ann_lgt_ch_incl'][i].checked)
    {
        var ann_lgt_ch_incl = document.forms['publier_ann'].elements['ann_lgt_ch_incl'][i].value;
        break;
    }
}
Où publier_ann est la valeur de l'attribut id de la balise <form> et ann_lgt_ch_incl est la valeur de l'attribut id de ma balise input de type checkbox.

Après, il te reste à faire la modification du style de ta case à cocher avec quelque chose du genre:
document.forms['publier_ann'].elements['ann_lgt_ch_incl'][i].style.backgroundColor='#f99';
Attention, ce système est sensible à la casse.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

22 déc. 2005, 20:56

le problemme du moins je crois c'est que je n'ai pas acces au html generer

par exemple si je fait une

Code : Tout sélectionner

document.getElementsByTagName('check').length
il me renvoi 0 hors j'ai 5 checkbox :-k

j'essaye ta solution et je reviens

Mammouth du PHP | 1311 Messages

22 déc. 2005, 21:05

j'ai essayer ton code mais il ne semble pas fonctionner alert ne me renvoi rien

Code : Tout sélectionner

for(var i in document.forms['frm1'].elements['check']) { if(document.forms['frm1'].elements['check'][i].checked) { var ann_lgt_ch_incl = document.forms['frm1'].elements['check'][i].value; alert(ann_lgt_ch_incl); break; } }
cependant tes expliction me laise perplexe
ann_lgt_ch_incl est la valeur de l'attribut id
tu veut dire name car tu peut pas avoir plusieur id :?:
et element fonctionne avec name, non :?:

Mammouth du PHP | 19672 Messages

22 déc. 2005, 21:23

Si tu as plusieurs éléments avec le même nom du genre ma_case[], alors au lieu de elements['ma_case'], il faudra utiliser getElementsByName('ma_case')

On peut avoir plusieurs attributs id dans un formulaire, mais chacun doit avoir une valeur différente. DOnc dans le cas de valeurs redondantes. Voir ICI
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

22 déc. 2005, 21:51

j'ai fait un petit texte
dans le html que je genere et que j'insere avec innerHTML, j'ai

Code : Tout sélectionner

<h2 id="monid">hgg</h2>
et dans une fonction j'essaye d'en afficher le contenu

Code : Tout sélectionner

alert(document.getElementById('monid').value);
il me retourne Undefined pouvez vous faire le teste
et me confirmer que ca marcher ou que cela ne marche pas
merci

Mammouth du PHP | 19672 Messages

22 déc. 2005, 21:56

Je parie à 10 contre 1 que ton javascript est avant ton titre <h2> donc au chargement, l'id n'est pas encore défini...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

22 déc. 2005, 22:02

qu'entends tu par avant
je ne comprend pas tres bien

voici comment mon script fonctionne
je click sur un nom d'utilisateur et via ajax cela me charge les actions qui lui sont autorisées dans un formulaire(en titre on la balise h2 et pour autoriser ou non on a des checkbox)
sur chaque checkbox j'ai un evenement onclick qui fait a appel a une fonction qui devait recupere l'id de la checkbox modifier(ceci fonctionne) et ensuite on devrai pouvoir modifier la couleur de la ligne et recupere l'etat de la checkbox

voila

Mammouth du PHP | 19672 Messages

22 déc. 2005, 22:11

Bon, je viens de tester un truc, j'étais à coté de mes pompes :
Essaye de cette manière:
function montitre()
{
    alert(document.getElementById('monid').firstChild.nodeValue);
}
Explications ici
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

22 déc. 2005, 22:18

ca fonctionne :D
j'ai plus qu'a trouver comment je manipule mes checkbox et c'est bon
le truc en faite c'est que j'avais peur de ne pas pouvoir acceder a mon formulaire

merci pour la doc je l'ai chercher toute l'apres midi sur le site msdn :pouce:

Mammouth du PHP | 1311 Messages

22 déc. 2005, 22:55

desole de vous embetez avec ce probleme mais je craque
<input type="checkbox" id="radio'+node[i].getAttribute('name')+'" value="'+node[i].getAttribute('name')+'" checked="checked" onclick="Apermit('+node[i].getAttribute('name')+');"/>
je transmet a Apermit l'id qui me permetera de mettre ma base a jour

et je voudrai avec ma fonction Apermit
savoir si ma case est coché (car y acceder je n'y arrive pas) ](*,) ](*,)

je essaye de passer directement a Apermit l'id de la checkbox mais il me dit que c'est un objetHTML :?

Mammouth du PHP | 1311 Messages

22 déc. 2005, 23:14

je crois que j'ai reussi

Mammouth du PHP | 19672 Messages

23 déc. 2005, 01:20

<input type="checkbox" id="radio'+node[i].getAttribute('name')+'" value="'+node[i].getAttribute('name')+'" checked="checked" onclick="Apermit('+node[i].getAttribute('name')+');"/>
je transmet a Apermit l'id qui me permetera de mettre ma base a jour
Tu ne peux pas faire une concaténation JavaScript directement dans du HTML, ça ne sera pas interprété correctement : tu dois d'abord faire ta concaténation de chaine dans un script JavaScript et l'envoyer ensuite en valeur dans l'attribut de ta balise via le DOM.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: