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


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

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

Message le Lun Déc 19, 2005 11:38

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
Dernière édition par dadovb le Lun Déc 19, 2005 14:40, édité 1 fois.

zarlboro
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 284
Inscription: 13 Juil 2004

Message le Lun Déc 19, 2005 12:10

ç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');">


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 13:11

Bon,
J'ai fait le changement que tu m'as conseillé :
Code: Tout sélectionner
<? 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 ?


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 13:29

ce que j'ai du mal a comprendre, c'est pourquoi ca marche avec firefox et pâs avec IE...


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 13:45

J'ai changé l'organisation du code :
Code: Tout sélectionner
<? }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

zarlboro
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 284
Inscription: 13 Juil 2004

Message le Lun Déc 19, 2005 13:46

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


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 13:47

ya juste ca ds changer() pas besoin du source :

Code: Tout sélectionner

function changer(numeroformch){         
   if (confirm("Etes-vous sûr de vouloir rendre la photo indisponible à la vente ?")){
      document.eval(numeroformch).submit();
   }
}



dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 14:27

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

zarlboro
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 284
Inscription: 13 Juil 2004

Message le Lun Déc 19, 2005 14:39

essaye

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


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 14:43

j'ai testé ton code zarlboro, et ca me met une nouvelle erreur ds la console javascript d'opéra :
Code: Tout sélectionner
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"));


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 14:58

et pi apres mon script i lmarche plus meme sous firefox...

zarlboro
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 284
Inscription: 13 Juil 2004

Message le Lun Déc 19, 2005 15:50

ecoute j'ai tester ce bout de code

Code: Tout sélectionner
<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


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 16:53

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: Tout sélectionner
<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: Tout sélectionner
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>

zarlboro
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 284
Inscription: 13 Juil 2004

Message le Lun Déc 19, 2005 17:20

:-)

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 ;-)


dadovb
WRInaute passionné
WRInaute passionné
 
Messages: 2050
Inscription: 22 Nov 2005

Message le Lun Déc 19, 2005 17:30

yes merci beaucoup !!

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

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: ISFR et 1 invité