Insertion function dans php

Bonjour,

J'ai créer une function javascript (et même plusieurs .....)
function ajout_input_mariag2(){  
 //lecture du choix dans la liste suite au onchange (liste atteinte par son id )  
 var choix_naissance=document.getElementById('date_mariage_2').value;  
 if(choix_naissance =='autre'){  
  //on rajoute l'input dans le div par un innerHTML    
 document.getElementById('div_input_mariag2_autre').innerHTML='<SELECT name="expression7">'+ 
  '<OPTION VALUE=""></OPTION>'+ 
  '<OPTION VALUE="Vers">Vers</OPTION>'+ 
  '<OPTION VALUE="Avant">Avant</OPTION>'+ 
  '<OPTION VALUE="Après">Après</OPTION>'+ 
  '<OPTION VALUE="Entre">Entre</OPTION>'+ 
  '</SELECT>'+ 
  ' <SELECT name="jour7">'+ 
  '<OPTION VALUE=""></OPTION>'+ 
  '<OPTION VALUE="1">1</OPTION>'+ 
  '<OPTION VALUE="2">2</OPTION>'+ 
  '<OPTION VALUE="3">3</OPTION>'+    ..................... 

En début de script, j'insère mes functions
</style> 
<SCRIPT LANGUAGE="Javascript" SRC="date_nais.js"> 
<SCRIPT LANGUAGE="Javascript" SRC="date_dc.js"></script> 
<SCRIPT LANGUAGE="Javascript" SRC="date_mariag1.js"></script> 
<SCRIPT LANGUAGE="Javascript" SRC="date_mariag2.js"></script> 
<SCRIPT LANGUAGE="Javascript" SRC="date_mariag3.js"></script> 
</script>

Comment éxécuter la function en cours de programmes ?
J'ai essayé
if (empty($row['date_mariage_2'])) 
{ 
echo '<div id="div_input_mariag2_autre"></div>'; // appel de la div de vla function 
} 
else { echo '<select name="date_mariage_2" id="date_mariage_2" onchange="ajout_input_mariag2();">';  
echo '<option value="'.$row['date_mariage_2'].'">'.$row['date_mariage_2'].'</option>'; 
echo '<option VALUE=""></option>';  
echo '<option style="color:red;" value="autre">Saisie d\'une autre date</option>'; 
echo '</select>';  
echo '<div id="div_input_mariag2_autre"></div>'; } 

mais ça ne fonctionne pas, rien ne s'affiche !
Merci.

6 réponses

  1. a cette ligne il te manque la balise de fermeture </script>

    <SCRIPT LANGUAGE="Javascript" SRC="date_nais.js" ></script>
    1. bonsoir,

      déjà même si ca n'a rien a voir mes tes balises et attribut en minuscule c'est plus lisible

      ensuite met plusieurs fonctions par fichier sinon t'as pas fini avec les balises script
      et il faut se dire que c'est une requête envoyé au serveur a chaque fichier

      maintenant pour ton problème.

      crée un seul fichier javascript par exemple script.js

      met y toutes tes fonctions

      ensuite une seule balise script sous cette forme

      <script type="text/javascript" src="script.js"></script>
      1. Merci pour vos réponse. Mais ça ne fonctionne toujours pas.
        Le javascript devrait afficher des zones de saisies, mais rien ne s'affiche !
        Voici ce que j'écris :
        Dans mon js :
        function ajout_inputdc(){  
         var choix_dc=document.getElementById('date_dc').value;  
         if(choix_dc =='autre'){  
         document.getElementById('div_inputdc_autre').innerHTML='<SELECT name="expression3">'+ 
          '<OPTION VALUE=""></OPTION>'+ 
          '<OPTION VALUE.....................
          '</SELECT>'+
        document.getElementById('date_dc_autre').focus(); 
         }else{ 
          document.getElementById('div_inputdc_autre').innerHTML=''; 
        } 
        }
        

        Mon code :
        ........... 
        </style> 
        <script type="text/javascript" src="script.js"></script> 
        </head> 
        <body> 
        ............... 
        <?php......... 
        if (!empty($row['date_dc'])) 
        { 
        echo '<select ................. 
        echo '<option.................. 
        echo '</option>'; 
        echo '</select>';  
        echo '<div id="div_inputdc_autre"></div>'; //div du javascript  
        } 
        else 
        { 
        echo '<div id="div_inputdc_autre"></div>';  
        } 
        
        1. est ce que tu appel ta fonction javascript ? avec par exemple onchange="ajout_inputdc();" dans ta balise select ?
          1. Dans mon exemple ci-dessus, la première partie du "if" fonctionne :
            if (!empty($row['date_dc']))
            	{
            	echo '<select name="date_dc" id="date_dc" onchange="ajout_inputdc();">';  
            	echo '<option value="'.$row['date_dc'].'">'.$row['date_dc'].'</option>'; 
            	echo '<option VALUE=""></option>';
            	echo '<option style="color:red;" value="autre">Saisie d\'une autre date</option>';
            	echo '</select>'; 
            	echo '<div id="div_inputdc_autre"></div>'; 
            	}
            

            Enfin, cela fonctionnait quand j'ouvrais chaque javascript un par un en début de code. C'est à dire si j'écris
            </style> 
            <SCRIPT LANGUAGE="Javascript" SRC="date_nais.js"></script> 
            <SCRIPT LANGUAGE="Javascript" SRC="date_dc.js"></script> 
            <SCRIPT LANGUAGE="Javascript" SRC="date_mariag1.js"></script> 
            <SCRIPT LANGUAGE="Javascript" SRC="date_mariag2.js"></script> 
            <SCRIPT LANGUAGE="Javascript" SRC="date_mariag3.js"></script> 
            </script>

            Cela fonctionne.
            Si j'écris
            <script type="text/javascript" src="script.js"></script>
            qui regroupe tous les javascript ci-dessus, le
            echo '<option style="color:red;" value="autre">Saisie d\'une autre date</option>';
            	echo '</select>'; 
            	echo '<div id="div_inputdc_autre"></div>';

            ne fonctionne plus.

            Et surtout, en ce qui concerne la partie "else"
            else 
            { 
            echo '<div id="div_inputdc_autre"></div>';  
            } 

            ça ne fonctionne pas du tout dans les deux cas .................... !