Probleme pour passer des parametres

Signaler
Messages postés
5
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
5
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
11 janvier 2009
-
bonjour,

je crée une fonction en javascript qui créé un formulaire de saisie avec un bouton envoyer et un bouton close

pour le bouton close j'affecte une fonction qui se chargera de supprimer les éléemnts du formulaire dynamiquement

input_close.setAttribute("onclick","close_insert_img_book(div_insert_img_b,div_parent_insert_img)");
input_close.onclick = close_insert_img_book(div_insert_img_b, div_parent_insert_img); // pour Internet Explorer

la fonction prend deux paramètres, voici donc cette fonction :

function close_insert_img_book(div_insert_img_b,div_parent_insert_img)
{
  var enfant = document.getElementById(div_insert_img_b);
  var parent = document.getElementById(div_parent_insert_img);
  alert(enfant);   alert(parent);
  //enfant.parentNode.removeChild(enfant);
}

lorsque je lance et que j'affiche alert(enfant), et alert(parent), il m'affiche "Null" comme valeur, ce qui n'est pas normal puisque j'ai vérifié que les div étaient bien créés sur ma page web initiale

donc ma question serait de savoir si j'utilise la bonne syntaxe pour passer des paramètres dynamiquement en javascript ??

ou quelqu'un a-t-il un exemple ou une solution à ce problème ?

merci par avance

<!-- / message -->
<!-- sig -->

__________________

7 réponses

Messages postés
1784
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
28 avril 2021
128
bonjour
pour bien comprendre le probleme il manque la partie html
Messages postés
5
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
11 janvier 2009

voici un exemple de code html pour une ligne qui doit créer le formulaire après double-clic dans le div div_insert_img1



<td class="violet12px" align="center" width="27%"><span style="cursor: pointer" ondblclick="create_insert_img_book('biblio','set_img_book=1','div_insert_img1','div_parent_insert_img1','num_bk','30')" title="Double-cliquez pour modifier">&nbsp;</span>
<div id="div_parent_insert_img1"><div id="div_insert_img1"></div></div></td>


lorsque je double-clique, le formulaire se créé correctement, mais lorsque je souhaite le fermer et donc lancer la fonction close_insert_img_book, les messages d'alert affichent "Null" et "Null" ce qui signifie que mes variables n'ont pas été "passées" correctement ; c'est comme si la fonction ne détectait pas les div qui existent pourtant bel et bien

j'ai mis le code ci-dessous entre commentaires puisque pour le moment il gènère une erreur de la console javascript Firebug comme suit :
enfant is null
close_insert_img_book(div#div_insert_img1, div#div_parent_insert_img1)

//enfant.parentNode.removeChild(enfant);


une idée ? je suis sûr que c'est évident, mais je me prends trop la tête dessus !
Messages postés
1784
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
28 avril 2021
128
ce que je ne comprend pas c'est que tu nomme les div

div_parent_insert_img1">

div_insert_img1">

mais que apparement les div dont tu fait reference s'appels

var enfant = document.getElementById(div_insert_img_b);
var parent = document.getElementById(div_parent_insert_img);
Messages postés
1784
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
28 avril 2021
128
il manquait un ligne

ce que je ne comprend pas c'est que tu nome les div

div_parent_insert_img1">

div_insert_img1">

mais que apparement les div dont tu fait reference s'appels

var enfant = document.getElementById(div_insert_img_b);
var parent = document.getElementById(div_parent_insert_img);
Messages postés
5
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
11 janvier 2009

c'est normal

div_insert_img_b est ma variable en paramètre, qui peut prendre comme valeur div_insert_img1 ou div_insert_img2 ou div_insert_img3, etc. (car mes lignes sont créées en fonction d'une table MySQL)

la "valeur" de mes div semble correcte, mais c'est comme si cette valeur ne suivait pas jusque dans ma fonction destinée à supprimer l'intérieur du div parent
Messages postés
1784
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
28 avril 2021
128
re

tu devrait essayer de voir ce que sa te donne si tu met une alerte en debut de script

function close_insert_img_book(div_insert_img_b,div_parent_insert_img)
{
   alert(div_insert_img_b);
   alert(div_parent_insert_img);
 }
Messages postés
5
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
11 janvier 2009

j'ai essayé de mettre des alert comme ça et cela donne [object] comme résultat

si ça peux servir, voici  le code complet de mes deux fonctions

function create_insert_img_book(section,set,div_insert_img,div_parent_insert_img,num,num_book)
 {
   var form_insert_img = document.createElement('form');
   var fieldset_insert_img = document.createElement('fieldset');
   var input_insert_img = document.createElement('input');
   var input_submit = document.createElement('input');
   var input_close = document.createElement('input');
   var div_insert_img_b = document.getElementById(div_insert_img);
   var div_parent_insert_img = document.getElementById(div_parent_insert_img);


   form_insert_img.setAttribute("enctype","multipart/form-data");
   form_insert_img.setAttribute("encoding","multipart/form-data");
   var params = "?go="+section+"&"+set+"&"+num+"="+num_book;
   form_insert_img.setAttribute("action",params);
   form_insert_img.setAttribute("method","post");


   input_insert_img.setAttribute("type","file");
   input_insert_img.setAttribute("name","userfile");
   input_insert_img.setAttribute("enctype","multipart/form-data");
   input_insert_img.setAttribute("encoding","multipart/form-data");
   input_submit.setAttribute("id","x");
   input_submit.setAttribute("type","submit");
   input_submit.setAttribute("value","Envoyer");


   input_close.setAttribute("id","x");
   input_close.setAttribute("type","button");
   input_close.setAttribute("value","Fermer");
   //input_close.setAttribute("onclick","close_insert_img_book(div_insert_img_b,div_parent_insert_img)");
   //input_close.onclick = close_insert_img_book(div_insert_img_b, div_parent_insert_img); // pour Internet Explorer
   input_close.onclick = function(){close_insert_img_book(div_insert_img_b, div_parent_insert_img);}


   fieldset_insert_img.appendChild(input_insert_img);
   fieldset_insert_img.appendChild(input_submit);
   fieldset_insert_img.appendChild(input_close);
   form_insert_img.appendChild(fieldset_insert_img);
   div_insert_img_b.appendChild(form_insert_img);
 }




function close_insert_img_book(div_insert_img_b,div_parent_insert_img)
{
  alert(div_insert_img_b);
  alert(div_parent_insert_img);
  var enfant = document.getElementById(div_insert_img_b);
  var parent = document.getElementById(div_parent_insert_img);
  alert(enfant);   alert(parent);
  enfant.parentNode.removeChild(enfant);
}

ainsi que le code initial de ma page web :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License


Name       : Extended
Description: A two-column, fixed-width, Web 2.0 design.
Version    : 1.0
Released   : 20070915


-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>medianeo : votre m&eacute;diath&egrave;que en ligne</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="main.css" rel="stylesheet" type="text/css" media="screen" />
<script src="includes/functions.js" type="text/javascript"></script>
<script src="includes/inlinemod_global.js" type="text/javascript"></script>


</head>

<!-- start header -->

     

        medianeo

        votre m&eacute;diath&egrave;que en ligne

     

     

        <form method="get" action="?go=search">
          <fieldset> </fieldset>
        </form>
     

   
<!-- end header --><!-- start menu -->
   

      <li class="current_page_item">[ accueil]</li>
<li>[?go=register inscription]</li>
<li>[?go=contact contact]</li>
<li>[?go=team notre &eacute;quipe]</li>
<li>[?go=buzz ils parlent de nous]</li>
<li>[?go=chart charte]</li>
 
   
<!-- end menu --><!-- start page -->
   
<!-- start content -->
     
    Votre biblioth&egrave;que : 706 livres.
[# 838 auteurs,3287 livres.]
   

             
          ----

            Allende Isabel,
                        &nbsp;&nbsp;
           ,
           
[?go=compte Mon compte] (aztec)</li>

  <li>[?go=video Mes films ](1349)</li>
  <li>[?go=biblio Mes livres ](3287)</li>
  <li>[?go=disco Mes disques ](221)</li>
  <li>[?go=bd_serie Mes Bds ](597)</li>
  <li>[?go=magazine Mes magazines  ](367)</li>
  <li>[?go=serie_tv Mes s&eacute;ries Tv ](4)</li>

  <li>[?go=advise Conseiller le site &agrave; un ami]</li>
  <li>[javascript:AjoutFavo() Ajouter &agrave; vos favoris]</li>
  <li><script language="javascript" type="text/javascript">PrintHomePage("http://www.multimedia-net.com","Multimedia-net en page d'accueil");</script></li>

  <li>[?go=deconnect Se d&eacute;connecter]</li>

</li>
      <li>
      Medias

     
        <li>[?go=bd_serie Bd-th&egrave;que] (597) </li>
        <li>[?go=biblio Biblioth&egrave;que] (3287) </li>
        <li>[?go=disco Discoth&egrave;que] (221) </li>
        <li>[?go=magazine Magazines] (367) </li>
        <li>[?go=video Cin&eacute;math&egrave;que ] (1349) </li>
        <li>[?go=serie_tv S&eacute;ries Tv] (4) </li>
     
    </li>
 
     
<!-- end sidebar -->
     
&nbsp;

   
<!-- end page -->
   

      &copy; 2001-2008 All Rights Reserved. &nbsp;&bull;&nbsp; Design by http://www.freecsstemplates.org/">Free CSS Templates &nbsp;&bull;&nbsp; CNIL : 2005-284 of 22/11/2005

      

       [
       http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" />
     

  

</html>