usually a non-object value used where an object is required

WRInaute passionné
ca ne marche que sous firefox, explorer refuse toujours de lancer la fonction javascript. Voilà le message de la console javascript de firefox :

Avertissement : Elément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C document.getElmentById() à la place.

Fichier source : javascript:{document.getElementById("chang4507").vente.value=1}; changer2(chang4507)'

Je comprends pas où peut etre le problème, changer2 est une fonction que j'ai crée.
Merci d'avance pour vos conseilsi
 
WRInaute occasionnel
ça parait etonnant, ie comprend très bien les getElementById.

tu as une faute : il manque les " dans l'appel de changer2, tu devrais avoir :

changer2("chang4507")

d'ailleurs plutot qur d'utiliser javascript: tu devraiz plutôt utiliser :

<a href="#" onclick="document.getElementById('chang4507').vente.value=1; changer2('chang4507');">
 
WRInaute passionné
Bon,
J'ai fait le changement que tu m'as conseillé :
Code:
<? if($vente==1){?>
			&nbsp;&nbsp;&nbsp;&nbsp;<img src="<? echo $site?>images/triangle.gif" border="0"><a href="#" onClick='document.getElementById("<?=$nomformchang?>").vente.value=0;changer("<?=$nomformchang?>");' class="petitstyle">Retirer de la vente</a>

Mais ya toujours le meme problème, sous mozilla, il me met un avertissement ds la console javascript, mais ca marche. Alors que sous i.e. la boite de dialogue de confirmation s'affiche bien mais ken je clik sur oui, rien ne se passe, et il me dit seulement que la page contient des erreurs.

Avez-vous une autre idée sur le problème ?
 
WRInaute passionné
J'ai changé l'organisation du code :
Code:
<? }else{ ?>
			&nbsp;&nbsp;&nbsp;&nbsp;<img src="<? echo $site?>images/triangle.gif" border="0"><a href='javascript:changer2("<?=$nomformchang?>");' class="petitstyle">Mettre en vente</a>
			<form action="dispo.php" method="post" id="<? echo $nomformchang?>">
				<input name="id_photo" type="hidden" value="<? echo $id_photo?>">
				<input name="vente" type="hidden" value="1">
			</form>
			<? }?>

Mais ca me mets toujours la meme ereur ds la console javascript de firefox, et ca ne marche toujours pas sous i.e., donc la g du mal à voir où est-ce kil fo ke je mete le .getElementById...
help plz
 
WRInaute occasionnel
ce que tu devrais faire est suffisament simple pour marcher sur ie ou sur firefox?

y'a quoi dans la fonction changer() ?

envois mois le source que je regarde : zarlboro[at]yagoort.org
 
WRInaute passionné
ya juste ca ds changer() pas besoin du source :

Code:
function changer(numeroformch){			
	if (confirm("Etes-vous sûr de vouloir rendre la photo indisponible à la vente ?")){
		document.eval(numeroformch).submit();
	}
}
 
WRInaute passionné
J'ai testé avec Opéra et ca ne marche pas non plus, par contre l'erreur javascript est plus précise, peut-etre saurez-vous l'interpréter :

Javascript URL thread: "javascript:changer2(document.getElementById("chang4506"));"
Error:
name: TypeError
message: Statement on line 17: Type mismatch (usually a non-object value used where an object is required)
Backtrace:
Line 17 of inline#1 script in http://www.monsite.org/Compte/photos/
document.eval(numeroph).submit();
Line 1 of unknown script
changer2(document.getElementById("chang4506"));

Voilà, est-ce qqun y voit + clair ?
Merci d'avance pour votreaide et vos conseils
 
WRInaute occasionnel
essaye

Code:
function changer(numeroformch){         
   if (confirm("Etes-vous sûr de vouloir rendre la photo indisponible à la vente ?")){
      document.getElementById(numeroformch).submit();
   }
}
 
WRInaute passionné
j'ai testé ton code zarlboro, et ca me met une nouvelle erreur ds la console javascript d'opéra :
Code:
Error:
name: TypeError
message: Statement on line 17: Could not convert undefined or null to object
Backtrace:
  Line 17 of inline#1 script in http://www.monsite.org/Compte/photos/
    document.getElementById(numeroph).submit();
  Line 1 of unknown script 
    changer2(document.getElementById("chang4506"));
 
WRInaute occasionnel
ecoute j'ai tester ce bout de code

Code:
<script>
function changer(numeroformch)
{         
   if (confirm("Etes-vous sûr de vouloir rendre la photo indisponible à la vente ?"))
   {
      document.getElementById(numeroformch).submit();
   }
}
</script>
id_photo:<?=$_POST["id_photo"]?><br>
<a href="#" onClick="changer('frm_test');">Mettre en vente</a>
<form action="dispo.php" method="post" id="frm_test">
	<input name="id_photo" type="hidden" value="999">
    <input name="vente" type="hidden" value="1">
</form>

ça marche très biien sur Firefox et sur IE. tu devrais t'en sortir avec ça!

tu peux tester toi même ici : -http://www2.yagoort.org/dispo.php
 
WRInaute passionné
Merci de ta patience zalboro,

Je me suis donc inspiré de ton exemple pour obtenir ceci :

(ca se passe toujours ds ma boucle en php)

Code:
<script>
function changer(numeroformch)
{         
   if (confirm("Etes-vous sûr de vouloir rendre la photo indisponible à la vente ?"))
   {
      document.getElementById(numeroformch).submit();
   }
}
</script>
			&nbsp;&nbsp;&nbsp;&nbsp;<img src="<? echo $site?>images/triangle.gif" border="0"><a href="#" onClick='changer("<? echo $nomformchang ?>")' class="petitstyle">Retirer de la vente</a>
			<form action="dispo.php" method="post" name="<? echo $nomformchang?>">
				<input name="id_photo" type="hidden" value="<? echo $id_photo?>">
				<input name="vente" type="hidden" value="0">
			</form>

Mais, ca marche toujours, j'ai un probleme en javascript encore

Erreur : document.getElementById(numeroformch) has no properties.

Je sui allé voir ds le code source, tout parait normal

Code:
function changer(numeroformch)
{         
   if (confirm("Etes-vous sûr de vouloir rendre la photo indisponible à la vente ?"))
   {
      document.getElementById(numeroformch).submit();
   }
}
</script>

			&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../images/triangle.gif" border="0"><a href="#" onClick='changer("chang4506")' class="petitstyle">Retirer de la vente</a>
			<form action="dispo.php" method="post" name="chang4506">
				<input name="id_photo" type="hidden" value="4506">
				<input name="vente" type="hidden" value="0">
			</form>
 
WRInaute occasionnel
:)

tu as encore oublié le id="chang4506" dans le tag <form>

quand tu utilise document.getElementById() t'es obliger t'utiliser l'attribut id, pas "name".

<form action="dispo.php" method="post" name="chang4506" id="chang4506">

note :

au lieu d'utiliser :
<? echo $nomformchang ?>

utilise
<?=$nomformchang?>

c'est bien plus propre ;-)
 
Discussions similaires
Haut