[javascript] pourquoi pas sous IE ?

Résolu/Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 29 mars 2007 à 15:24
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 - 3 avril 2007 à 18:33
Salut a tous les spécialistes javascript,
Voici un script de controle de certains champs d'un form. Chez moi (Firefox et XP) tout fonctionne parfaitement.
Par contre sous IE6 et W2000 (bureau), il ne voit pas qu'il y a une option choisie dans groupe (1er controle).
Si je change le champ en type text: c'est OK.
Donc, j'en déduis que c'est les listes déroulantes qu'il n'aime pas ! Je me trompe ? Ou alors c'est le code qui est mal écrit ?

Quel est le PB SVP ?


<!-- Vérification des champs obligatoires du formulaire
function verif() 
{ 
	var nom = document.formulaire.groupe.value; // liste déroulante
	if (document.formulaire.groupe.value == "") 
	{
		alert ('Veuillez entrer le groupe auquel appartient le logiciel');
		document.formulaire.groupe.focus();
		return false;
	}
	if(document.formulaire.categorie.value == "") // liste déroulante
	{
		alert ('Veuillez entrer la catégorie du logiciel');
		document.formulaire.categorie.focus();
		return false;
	}
	if(document.formulaire.nom.value == "")
	{
		alert ('Veuillez entrer le nom du logiciel');
		document.formulaire.nom.focus();
		return false;
	}
	if(document.formulaire.reference_DSI.value == "") // liste déroulante
	{
		alert ('Veuillez entrer la référence DSI');
		document.formulaire.reference_DSI.focus();
		return false;
	}
	if(document.formulaire.reference_DSI.value.length != 3)
	{ 
		alert ('La référence doit comporter trois caractères'); 
		document.formulaire.reference_DSI.focus();
		return false; 
	}
	else {return true;}
}
//-->

Merci d'avance pour votre correction !
A voir également:

22 réponses

Re, desolée j'arrive pas a éditer.

Une petite piste poiur t'aider essai de mettre un ID a ta liste deroulante et essai getelementbyid un truc dans ce genre, je me repalle que ça marchait super bien avec IE
1
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
2 avril 2007 à 05:02
Bonsoir txiki,

Je crois avoir trouvé le problème. IE ne comprends pas l'appel d'un élément sans passer par "all". Comme dans document.all.monelement.

Alors, pour IE, soit tu changes ça ou tu changes les codes pour qu'ils soient plus universels (dans ta fonction verif() ) . i.e. avec DOM javascript.

Solution 1: Donc, soit tu fais cette passe-passe:

<!-- Vérification des champs obligatoires du formulaire
function verif()
{ if (document.all) document=document.all
var nom = document.formulaire.groupe.value; // liste déroulante
if (document.formulaire.groupe.value == "")

etc...


Solution 2: Soit tu utilise le DOM (mais alors les très vieux fureteurs flanchent), avec getElementById('formulaire'):

<!-- Vérification des champs obligatoires du formulaire
function verif()
{ if (!document.getElementById) {alert ('Votre fureteur ne supporte pas le DOM'); return false; }
var nom = document.getElementById('formulaire').groupe.value; // liste déroulante
if (document.getElementById('formulaire').groupe.value == "")

etc...

N'oublies pas de remplacer le reste du code.


Voilà. Alors si c'est ça, tu me dois la vie?
:) Tiens-moi au courant.
Serge.
1
J'ai un peu travailler dans le developpement web enfin j'ai fais un stage de 4 mois la dedans à la fin de mon dut. et je me suis rendu compte que firefox respecter bien les normes pour le javascript donc en general on a pas de problème mais IE6... quelle misère c une synthaxe spéciale enfin c pas qu'elle est spéciale c'est qu'elle respecte pas les normes...

Alors ce qu'il te reste a faire c'est faire des test sur le navigateur de l'utilisateur et d'executer un code different pour chaque navigateur...

Par contre pour IE7 je ne sais pas ce qu'il en est...

Je te souhaite bien du courage la dedans (je me rapelle des vrais prises de tête la dessus ^^)
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
29 mars 2007 à 17:00
Merci maelo,
Mais l'ajout de l'id ne change rien au PB et c'est malheureusement IE6 qui est utilisé dans ma boite.
Misèèèèère !
J'avais utilisé ce système des listes pour uniformiser l'écriture de ces parties.
Et j'y connais rien en javascript. BOUUUUUUH !!! ;_(((
0
et si tu fais un truc dans ce genre

var selected = document.formulaire.groupe.selectedIndex;
if (selected == "") {
....


c du vite fais mais essaie autrepment si ça marche pas je serai incapable de t'aider

desolée si ça marche pas.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
31 mars 2007 à 00:03
Salut a tous,
Merci maelo mais c'est pire: il passe outre les vérifs.
Et dans la boite, le standard c'est IE6 ;-(((
Je ne vais quand même pas imposer Firefox aux 2/3 personnes qui auront a faire ces modifs ? ? ?
C'est désespérant (ahhh ! Bill, mon gros bil !)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
31 mars 2007 à 00:52
il faut chercher IE c'est de la merde c'est tout, c'est enervant a chaque fois il faut faire des modifs pour que ca marche avec IE...

lol
0
enfin ct peut ==0 aussi ^^

ben tu as plus qu'a essayer tout ce que tu peux trouver lapinkiller a raison IE ça supporte pas trop le javascript...
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
1 avril 2007 à 05:11
Pourrais-tu montrer la page problème? C'est pas au niveau du javascript que IE6 bogue, normalement. C'est au css et au html.

Serge.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
1 avril 2007 à 14:34
Salut Serge_La et merci pour ta réponse,
voici le code complet de la page en question:
<?
session_start();  // A placer obligatoirement avant tout code html

$_SESSION['connect']=0; //initialise la variable 'connect'

if (isset($_POST['mot_de_passe']) AND isset($_POST['login'])) // Si les variables existent
{
        $mot_de_passe=$_POST['mot_de_passe'];
        $login=$_POST['login'];  //On récupère les données envoyées par la méthode POST du formulaire d'identification
}

else // Les variables n'existent pas encore
{
        $mot_de_passe="";
        $login=""; // On crée des variables $mot_de_passe  et $login vides
}

if (($mot_de_passe == "******" AND $login == "******") OR ($mot_de_passe == "tinotibet" AND $login == "tintin")OR ($mot_de_passe == "******" AND $login == "******") OR ($mot_de_passe == "******" AND $login == "******"))
// Si le mot de passe et le login sont bons (valable pour 1 utilisateur ou plus). J'ai mis plusieurs identifiants et mots de passe.

{
        $_SESSION['connect']=1;  // Change la valeur de la variable connect. C'est elle qui nous permettra de savoir s'il y eu identification.
        $_SESSION['login']=$login;  // Permet de récupérer le login afin de personnaliser la navigation
// On affiche la page cachée.
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
  <title>Fiche ajout de logiciel dans la base</title>
  <link href="scripts_styles/form.css" rel="stylesheet">
  <script language="javascript" src="scripts_styles/verif.js" type="text/javascript"></script>  
<script type="text/javascript" language="JavaScript">
// si l'année à deux chiffres entrait les dates après cette année ont considéré le siècle 20.
var NUM_CENTYEAR = 30;
// c'est la commande d'entrée de temps exigée par défaut
var BUL_TIMECOMPONENT = false;
// sont les boutons de défilement d'année exigés par défaut
var BUL_YEARSCROLL = true;

var calendars = [];
var RE_NUM = /^\-?\d+$/;

function calendar1(obj_target) {

	// assignation des méthodes
	this.gen_date = cal_gen_date1;
	this.gen_time = cal_gen_time1;
	this.gen_tsmp = cal_gen_tsmp1;
	this.prs_date = cal_prs_date1;
	this.prs_time = cal_prs_time1;
	this.prs_tsmp = cal_prs_tsmp1;
	this.popup    = cal_popup1;

	// validez les paramètres d'entrée
	if (!obj_target)
		return cal_error("Error calling the calendar: no target control specified");
	if (obj_target.value == null)
		return cal_error("Error calling the calendar: parameter specified is not valid target control");
	this.target = obj_target;
	this.time_comp = BUL_TIMECOMPONENT;
	this.year_scroll = BUL_YEARSCROLL;
	
	// enregistrer dans les "collections" globales
	this.id = calendars.length;
	calendars[this.id] = this;
}

function cal_popup1 (str_datetime) {
	if (str_datetime) {
		this.dt_current = this.prs_tsmp(str_datetime);
	}
	else {
		this.dt_current = this.prs_tsmp(this.target.value);
		this.dt_selected = this.dt_current;
	}
	if (!this.dt_current) return;

	var obj_calwindow = window.open(
		'calendar.html?datetime=' + this.dt_current.valueOf()+ '&id=' + this.id,
		'Calendar', 'width=240,height=200'+
		',status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes'
	);
	obj_calwindow.opener = window;
	obj_calwindow.focus();
}

// fonction génératrice de timestamp
function cal_gen_tsmp1 (dt_datetime) {
	return(this.gen_date(dt_datetime) + ' ' + this.gen_time(dt_datetime));
}

// fonction génératrice de date
function cal_gen_date1 (dt_datetime) {
	return (
		(dt_datetime.getDate() < 10 ? '0' : '') + dt_datetime.getDate() + "-"
		+ (dt_datetime.getMonth() < 9 ? '0' : '') + (dt_datetime.getMonth() + 1) + "-"
		+ dt_datetime.getFullYear()
	);
}
// fonction génératrice de temps
function cal_gen_time1 (dt_datetime) {
	return (
		(dt_datetime.getHours() < 10 ? '0' : '') + dt_datetime.getHours() + ":"
		+ (dt_datetime.getMinutes() < 10 ? '0' : '') + (dt_datetime.getMinutes()) + ":"
		+ (dt_datetime.getSeconds() < 10 ? '0' : '') + (dt_datetime.getSeconds())
	);
}

// fonction d'analyse de timestamp
function cal_prs_tsmp1 (str_datetime) {
	// si aucun paramètre n'est spécifié, retourner à l'actuel timestamp
	if (!str_datetime)
		return (new Date());

	// si "festin" positif de nombre entier comme millisecondes d'époque
	if (RE_NUM.exec(str_datetime))
		return new Date(str_datetime);
		
	// donc traiter comme date dans le format de "corde"
	var arr_datetime = str_datetime.split(' ');
	return this.prs_time(arr_datetime[1], this.prs_date(arr_datetime[0]));
}

// fonction d'analyse de la date
function cal_prs_date1 (str_date) {

	var arr_date = str_date.split('-');

	if (arr_date.length != 3) return cal_error ("Invalid date format: '" + str_date + "'.\nFormat accepted is dd-mm-yyyy.");
	if (!arr_date[0]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo day of month value can be found.");
	if (!RE_NUM.exec(arr_date[0])) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[1]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo month value can be found.");
	if (!RE_NUM.exec(arr_date[1])) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[2]) return cal_error ("Invalid date format: '" + str_date + "'.\nNo year value can be found.");
	if (!RE_NUM.exec(arr_date[2])) return cal_error ("Invalid year value: '" + arr_date[2] + "'.\nAllowed values are unsigned integers.");

	var dt_date = new Date();
	dt_date.setDate(1);

	if (arr_date[1] < 1 || arr_date[1] > 12) return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed range is 01-12.");
	dt_date.setMonth(arr_date[1]-1);
	 
	if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
	dt_date.setFullYear(arr_date[2]);

	var dt_numdays = new Date(arr_date[2], arr_date[1], 0);
	dt_date.setDate(arr_date[0]);
	if (dt_date.getMonth() != (arr_date[1]-1)) return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed range is 01-"+dt_numdays.getDate()+".");

	return (dt_date)
}

// fonction d'analyse du temps
function cal_prs_time1 (str_time, dt_date) {

	if (!dt_date) return null;
	var arr_time = String(str_time ? str_time : '').split(':');

	if (!arr_time[0]) dt_date.setHours(0);
	else if (RE_NUM.exec(arr_time[0]))
		if (arr_time[0] < 24) dt_date.setHours(arr_time[0]);
		else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed range is 00-23.");
	else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed values are unsigned integers.");
	
	if (!arr_time[1]) dt_date.setMinutes(0);
	else if (RE_NUM.exec(arr_time[1]))
		if (arr_time[1] < 60) dt_date.setMinutes(arr_time[1]);
		else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed values are unsigned integers.");

	if (!arr_time[2]) dt_date.setSeconds(0);
	else if (RE_NUM.exec(arr_time[2]))
		if (arr_time[2] < 60) dt_date.setSeconds(arr_time[2]);
		else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed values are unsigned integers.");

	dt_date.setMilliseconds(0);
	return dt_date;
}

function cal_error (str_message) {
	alert (str_message);
	return null;
}
</script>
<!-- FIN SCRIPT CALENDRIER -->
  </head>
  <body>

<h1> Ajout d'un logiciel </h1>
    
    <p align="center"> Les champs marqu&eacute;s  <strong class="echec">*</strong> sont obligatoires</p>
    <form method="post" name="formulaire" id="formulaire" action="insert.php">
      <table width="100%" border="0" align="center" cellpadding="5" cellspacing="1" class="calendar">
        <tr>
          <td > Veuillez choisir la  date en utilisant le calendrier ci-contre:&nbsp;<a href="javascript:cal1.popup();"><img src="img-calendar/cal.gif" width="16" height="16" border="0" alt="Cliquez ici pour obtenir la date." title="Cliquez ici pour obtenir la date."></a>&nbsp;<input type="Text" name="input1" value="" size="20"></td>
        </tr>
        <script language="JavaScript">
			<!-- // créer un objet de calendrier juste après la fermeture d'un "tag de formulaire"
				 // spécifier l'élément du formulaire comme le seul paramètre (document.forms['nom_du_formulaire'].elements['nom_d'entrée']);
				 // note : vous pouvez avoir autant d'objets de calendrier dont vous avez besoin pour votre application
				// ==============================================================================
				// elements.date ou ['date']" est le name du champ du formulaire juste au dessus
				var cal1 = new calendar1(document.forms['formulaire'].elements['input1']);
				cal1.year_scroll = true;
				cal1.time_comp = false;
			</script>
  </table>
      <br>
      <table width="100%"  border="0" align="center" cellpadding="3" cellspacing="0">
        <tr>
          <td> Groupe: <strong class="echec">*</strong>
            <select name="groupe">// c'est ici que ça foire ! ! !
              <option> </option>
              <option>m&eacute;tier</option>
            <option>management</option>
            <option>SI de gestion</option>
            <option>poste de travail</option>
            </select>
          </td>
        </tr>
  </table>
      <table width="100%"  border="0" align="center" cellpadding="3" cellspacing="0">
        <tr>
          <td width="50%"> Catégorie: <strong class="echec">*</strong>// et probablement ici aussi mais ça ne passe pas le premier controle alors ? ? ?
            <select name="categorie">
            <option> </option>
            <option>CFAO</option>
            <option>DAO</option>
            <option>Logiciel embarqu&eacute;</option>
            <option>Calcul-Simulation</option>
            <option>Mesure-Acquisition</option>
            <option>Supervision-Pilotage</option>
            <option>PAO</option>
            <option>Reprographie m&eacute;tier-traceur</option>
            <option>Maintenance moteur</option>
            <option>D&eacute;veloppement informatique</option>
            <option>Gestion connaissances</option>
            <option>Divers</option>
            <option>Informatique d&eacute;cisionnelle</option>
            <option>Gestion projet-Planification</option>
            <option>Gestion processus</option>
            <option>Projet SAP</option>
            <option>communication-Bureautique</option>
            <option>S&eacute;curit&eacute;</option>
            <option>Composant acc&egrave;s services</option>
            <option>Outillage banalis&eacute;</option>
            <option>Driver p&eacute;riph&eacute;rique carte</option>
            <option>OS syst&egrave;me</option>
            <option>Infrastructure technique</option>
            </select> </td>
          <td width="5">&nbsp;</td>
          <td width="50%">Source: <input type="text" name="source" size="30" maxlength="100"></td>
        </tr>
        <tr>
          <td width="50%">Editeur: <input TYPE="text" name="editeur" SIZE="46" maxlength="100"></td>
          <td width="5">&nbsp;</td>
          <td width="50%"> Nom: <strong class="echec">*</strong><input TYPE="text" name="nom" SIZE="51" maxlength="255">
          </td>
        </tr>
        <tr>
          <td width="50%">Ligne du produit: 
          <input TYPE="text" name="ligne_produit" SIZE="36" maxlength="100"></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Socle: <input TYPE="text" name="socle" SIZE="40"></td>
        </tr>
        <tr>
          <td width="50%">Référence DSI: <strong class="echec">*</strong><select name="reference_DSI">
            <option> </option>
            <option>cat</option>
            <option>ref</option>
            <option>&eacute;val</option>
            <option>rebut</option>
          </select>
          </td>
          <td width="5">&nbsp;</td>
          <td width="50%">Standard DSI: <select name="standard_DSI">
            <option> </option>
            <option>standard</option>
            <option>rebut</option>
          </select></td>
        </tr>
        <tr>
          <td width="50%">Type de licence: <select name="type_licence">
            <option> </option>
            <option>monoposte</option>
            <option>monoposte &agrave; jeton</option>
            <option>monoposte dongle</option>
            <option>monoposte + cl&eacute; mat&eacute;rielle</option>
            <option>monoposte + cl&eacute; logicielle</option>
            <option>r&eacute;seau</option>
            <option>licence flottante</option>
            <option>licence flottante et monoposte</option>
            <option>client lourd</option>
            <option>client serveur</option>
            <option>cl&eacute; mat&eacute;rielle</option>
            <option>acc&egrave;s unix</option>
            <option>d&eacute;veloppement sp&eacute;cifique TM</option>
            <option>licence site</option>
            <option>client citrix</option>
            <option>aucune</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Version standard: <input TYPE="text" name="version_standard" SIZE="20" maxlength="150"></td>
        </tr>
        <tr>
          <td width="50%">Compatibilité XP: <select name="compatibilite_XP">
            <option> </option>
            <option>oui</option>
            <option>non</option>
            <option>oui pour version 2006</option>
            <option>?</option>
            <option>? pour 4.3 oui pour 5.0</option>
            <option>IE 5.5 sp1</option>
            <option>Office 2000, 2002, 2003</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Versions en exploitation: <input TYPE="text" name="versions_exploitation" SIZE="20"></td>
        </tr>
        <tr>
          <td width="50%">Type de déploiement: <select name="type_deploiement">
            <option>&nbsp; </option>
            <option> serveur/script</option>
            <option>serveur/script + CD</option>
            <option>serveur/proc&eacute;dure</option>
            <option>manuelle</option>
            <option>CD</option>
            <option>?</option>
            <option>logon script</option>
            <option>logon script + disque S</option>
            <option>FTP</option>
            <option>t&eacute;l&eacute;charg&eacute;e</option>
            <option>en cours</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%">Type d'installation: <select name="type_installation">
            <option> </option>
            <option>locale</option>
            <option>r&eacute;seau</option>
            <option>client</option>
            <option>serveur</option>
            <option>non</option>
          </select></td>
        </tr>
        <tr>
          <td width="50%">Domaine: <select name="domaine">
            <option>&nbsp;</option>
            <option>CFAO</option>
            <option>DAO</option>
            <option>PAO</option>
            <option>Calul/Simulation</option>
            <option>Logiciel embarqu&eacute;</option>
            <option>Mesure/Acquisition</option>
            <option>Supervision/Pilotage</option>
            <option>Reprographie</option>
            <option>Maintenance moteur</option>
            <option>D&eacute;veloppement informatique</option>
            <option>Gestion des connaissances</option>
            <option>Informatique d&eacute;cisionnelle</option>
            <option>Gestion de projet</option>
            <option>Planification</option>
            <option>Mod&eacute;lisation processus</option>
            <option>SI de gestion</option>
            <option>Accompagnement au changement</option>
            <option>Projet SI</option>
            <option>Communication/Bureautique</option>
            <option>S&eacute;curit&eacute;</option>
            <option>COmposant d'acc&egrave;s &agrave; un service</option>
            <option>Composant java sur le poste</option>
            <option>Outillage banalis&eacute;</option>
            <option>Driver, p&eacute;riph&eacute;rique, exploitation p&eacute;riph&eacute;rique </option>
            <option>OS</option>
            <option>Outil syst&egrave;me</option>
            <option>Infrastructure technique</option>
          </select></td>
          <td width="5">&nbsp;</td>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="fonctionnalite" cols="35" rows="1" wrap="PHYSICAL"></textarea></td>
            </tr>
            <tr>
              <td>Fonctionnalit&eacute;:&nbsp; </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
        </tr>
        <tr>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="description" cols="35" rows="1" wrap="PHYSICAL"></textarea></td>
            </tr>
            <tr>
              <td>Description: </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
          <td width="5">&nbsp;</td>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="instructions" cols="35" rows="1" wrap="PHYSICAL"></textarea></td>
            </tr>
            <tr>
              <td>Instructions:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
        </tr>
        <tr>
          <td width="50%"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="pre_requis" cols="35" rows="1" wrap="PHYSICAL"></textarea></td>
            </tr>
            <tr>
              <td>Pré-requis:&nbsp; </td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
          <td width="5">&nbsp;</td>
          <td width="50%">Référent métier: <input TYPE="text" name="referent_metier" SIZE="36" maxlength="255"></td>
        </tr>
  </table>
	  <table width="100%"  border="0" align="center" cellpadding="3" cellspacing="0">
        <tr>
          <td><table width="100%"  border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td>&nbsp;</td>
              <td rowspan="3"><textarea name="commentaires" cols="85" rows="2" wrap="PHYSICAL"></textarea></td>
            </tr>
            <tr>
              <td>Commentaires:</td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table>
          </td>
        </tr>
  </table>
<table width="80%"  border="0" align="center" cellpadding="4" cellspacing="0">
        <tr>
          <td align="center"><input type="submit" name="submit" value="Ajouter la fiche dans la base" onClick="javascript: return verif();"></td>
        </tr>
  </table>
  	  </table>
</form>
	<br />
  <table width="60%"  border="0" align="center" cellpadding="4" cellspacing="0">
    <tr>
      <td colspan="3" align="center"><a href="index.php"><img src="boutons-catalogue/accueil.png" alt="Retour &agrave; la page d'accueil" width="62" height="21" border="0"></a>&nbsp; <a href="liste.php"><img src="boutons-catalogue/afficher-catalogue.png" alt="Afficher la liste des logiciels du catalogue" width="139" height="21" border="0"></a>&nbsp; <a href="fiche_ajout.php"><img src="boutons-catalogue/ajouter.png" alt="Ajouter un logiciel au catalogue" width="116" height="21" border="0"></a>&nbsp;<a href="rechercher.php"><img src="boutons-catalogue/chercher-fiche.png" alt="Chercher un logiciel dans le catalogue" width="128" height="21" border="0"></a>&nbsp;<a href="javascript:history.go(-1)"><img src="boutons-catalogue/retour.png" alt="Retour &agrave; la page pr&eacute;c&eacute;dente" width="58" height="21" border="0"></a></td>
    </tr>
    <tr>
      <td align="center" width="35%">&nbsp;</td>
      <td align="center" bgcolor="#E5E5E5" width="30%">
<?
echo "Mis &agrave; jour le: ";
echo date("d - m - Y");
?>
</td>
      <td align="center" width="35%">&nbsp;</td>
    </tr>
  </table>
  <p>&nbsp;</p>
  </body>
</html>
<?
}

else // le mot de passe n'est pas bon
{
// On affiche la zone de texte pour rentrer le mot de passe.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title> Page protégée par mot de passe </title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link href="scripts_styles/form.css" rel="stylesheet">
    </head>
    <body>
  <p>&nbsp;</p>
<h1 align="center"> Cette page est réservée aux administrateurs uniquement ! </h1>
<h3 align="center" class="echec"> Veuillez entrer le login et mot de passe : </h3>
	<table width="300px"><tr>
	<form action="fiche_ajout.php" method="post">
	<p align="center"><input type="text" name="login" /></p>
	<p align="center"><input type="password" name="mot_de_passe" /></p>
	<p align="center"><input type="submit" value="Valider" /></p>
	</form>
	</tr></table>
    </body>
</html>
<?
} // Fin du else
// Fin du code :)
?>

NOTE: le script qui affiche le calendrier, je n'ai pas su le mettre à part, fichier séparé, parcequ'il faudrait lui indiquer l'url des images etc... mais je ne voit pas dans le script, ces chemins. ça ne fonctionne pas si c'est un fichier séparé et pourtant c'est un super truc, ce système de calendrier.
Voilà, si tu vois l'erreur, je serais diablement soulagé (d'autant plus que c'est pour le boulot). Ils attendent après ça et suis sous pression ! ! ! :-((((
Merci infiniment !

J'oubliais ! tu peux le voir sur: http://txiki.free.fr
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
1 avril 2007 à 19:06
Bonjour Txiki,

J'ai un IE6 sur windows2000 ici.
Je suis allé sur ta page mais je ne peux pas loguer. Le mot de passe tintin avec utilisateur tinotibet refuse l'entrée. Sans ça je ne peux pas voir la page qui bogue.
J'ai quand même isolé le html et essayé en local, ta page problème. Je ne vois de différence ici (sauf des ajustements mineurs css à faire).
Le code qui enrobe ton code html n'est pas javascript. Semble être du perl, que je connais aussi.

Décrit-moi le problème exactement et donnes-moi un mot de passe valide avec nom d'utilisateur pour que je puisse voir ton problème sur le vif.

Serge.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
2 avril 2007 à 00:48
Salut Serge et merci pour ta réponse,
C'est très étrange pour le login et le pass (je viens encore de le vérifier sur le serveur de free) ? ? ? ?
essaie avec:
login: txiki
pass: txikito
Tu a bien cliqué sur Ajouter une fiche ?
"Le code qui enrobe ton code html n'est pas javascript. Semble être du perl,"
<script type="text/javascript" language="JavaScript">
// si l'année à deux chiffres entrait les dates après cette année ont considéré le siècle 20.
var NUM_CENTYEAR = 30;
// c'est la commande d'entrée de temps exigée par défaut
var BUL_TIMECOMPONENT = false;
// sont les boutons de défilement d'année exigés par défaut
var BUL_YEARSCROLL = true;.........

Tu veux parler de cette partie ?
Je ne connais rien au perl, mais alors absolument rien !
Mon problème:
Sous IE: lorsque je clique sur "Ajouter la fiche dans la base" dans le formulaire sans avoir précisé le groupe et la catégorie (champs obligatoires mais surtout de type liste car en type text classique ça fonctionne (?)..) le controlejavascript me demande renseigner le groupe.
Donc je choisi un groupe et je reclique sur le bouton Ajouter une fiche dans la base. Mais il me redemande de choisir le groupe ????
Alors qu'il a été choisi.
Sous Firefox et XP (chez moi), ça fonctionne très bien !
Si tu maitrise le perl (si toutefois c'est du perl) pourrais-tu me préciser où je dois modifier les paramètres suivants:
les répertoire des images du calendrier (img-calendar à la racine dans mon arbo du site)
la page calendar.html à la racine du site.
C'est pour éviter que le script soit dans la page elle même. J'avais bien essayé mais ça ne fonctionnait pas (comme quand on fait: "
<script language="javascript" src="scripts_styles/verif.js" type="text/javascript"></script>
"
Cette page est vraiment très importante et il faut absolument qu'elle soit opérationnelle dans très peu de temps ! :-(((
Merci encore pour ton attention dévouée !
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
2 avril 2007 à 01:08
Oups ! désolé ! laisse tomber la l'histoire du calendrier. J'ai trouvé (oubli d'une partie du code dans la page du formulaire.
Autant pour moi !
Désolé.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
2 avril 2007 à 05:13
Rebonsoir,

Juste pour te dire qu'il est 21:00 Dimanche ici. Si tu réponds assez tôt, j'aurai le loisir de voir le résultat avant d'aller dormir.

Aussi, ce serait mieux d'ajouter un point-virgule (;) à la fin de ma ligne de code ajoutée. C'est pas obligatoire en javascript.

Serge.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
2 avril 2007 à 05:27
rerebonsoir,

Bon, en revoyant ton code html, j'ai vu une troisième solution simple et universelle. Dans les cas de formulaires, l'appel des éléments fut inventé en premier. Alors il existe une ancienne méthode. Il te suffit de remplacer formulaire par forms['formulaire'] dans ta fonction verif() comme ceci:

remplace
document.formulaire.
par
document.forms['formulaire'].

Bien mieux.
Serge.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
2 avril 2007 à 16:47
Salut Serge,
BOn, je laisse tomber ! aucune de tes solutions ne fonctionent. ça ne fonctionne que pour les champs normaux et non pour des listes déroulantes.
Ce script fonctionne sur d'autres pages, dont le formulaire ne contient pas de liste de choix (en tous cas il n'y a pas de controle dessus).
C'est bien lié au fait que ce soit une liste déroulante et ça, ça ne m'arrange pas du tout.
Les personnes qui auront a faire des modifs dessus devront utiliser Firefox, je ne vois pas d'autre solution, hélàs ! ! !

Merci quand même pour ton sérieux coup de main.
Mais peut-etre que j'ai mal copié (je n'y connais rien en javascript alors ....

L'avantage de celui-ci, c'est qu'il donnait le focus sur l'élément qui n'était pas renseigné.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
2 avril 2007 à 19:02
Rebonjour txiki,

Ben non, laisses pas tomber. Javascript fonctionne très bien. Je viens d'essayer avec ton javascript en local et ça fonctionne ici.

Si tu ne connais rien au javascript, dis-moi. As tu laissé la ligne suivante dans le script???:

<!-- Vérification des champs obligatoires du formulaire


Alors que
<!--
est le code de commentaire en html. En javascript, c'est
//


Alors, change ta ligne pour ceci:

// Vérification des champs obligatoires du formulaire.




Autre problème (une fois que celui-ci est réglé), la condition pour les reference_DSI est d'exactement trois caractères alors que quelques-uns de tes choix en ont plus. Faudra la changer, non?

Voilà. Essayes encore.

Serge.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
2 avril 2007 à 19:49
Salut Serge,
Tu es sur pour les commentaires en javascript ?
Vais essayer de suite.
Mais j'ai peut-etre merdé quand j'ai remplacé les lignes que tu m'a proposé.

la condition pour les reference_DSI est d'exactement trois caractères alors que quelques-uns de tes choix en ont plus. Faudra la changer, non?

Oui ! sauf que je sais pas le faire ! :-((
Je les ai rajouéts après (au départ il n'y avait que des mots de 3 caratères).
Chez moi, sous IE7 et XP (je parle quand je vais chez free, évidement) ça ne fonctionne pas non plus (je choisi un groupe mais il me demande toujours de choisir le groupe, il ne voit pas que c'est renseigné).
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
2 avril 2007 à 22:34
Bonjour Txiki,

J'ai trouvé une autre erreur que je n'ai pas vu hier. Probablement ce qui fait défaut.
Cette ligne:
var nom = document.formulaire.groupe.value; // liste déroulante

fait une collision avec ce code:
if(document.formulaire.nom.value == "")
	{
		alert ('Veuillez entrer le nom du logiciel');
		document.formulaire.nom.focus();


Dans ta fonction verif(), la variable nom (var nom) ne semble pas utile. Essayes en enlevant cette ligne. Bon attends, je t'envoie tout le code corrigé pour voir:

function verif() 
{ 
	if (document.forms['formulaire'].groupe.value == "") 
	{
		alert ('Veuillez entrer le groupe auquel appartient le logiciel');
		document.forms['formulaire'].groupe.focus();
		return false;
	}
	if(document.forms['formulaire'].categorie.value == "") // liste déroulante
	{
		alert ('Veuillez entrer la catégorie du logiciel');
		document.forms['formulaire'].categorie.focus();
		return false;
	}
	if(document.forms['formulaire'].nom.value == "")
	{
		alert ('Veuillez entrer le nom du logiciel');
		document.forms['formulaire'].nom.focus();
		return false;
	}
	if(document.forms['formulaire'].reference_DSI.value == "") // liste déroulante
	{
		alert ('Veuillez entrer la référence DSI');
		document.forms['formulaire'].reference_DSI.focus();
		return false;
	}
	if(document.forms['formulaire'].reference_DSI.value.length != 3)
	{ 
		alert ('La référence doit comporter trois caractères'); 
		document.forms['formulaire'].reference_DSI.focus();
		return false; 
	}
	else {return true;}
}



Je peux corriger le code pour reference_DSI facilement. Quelle serait la condition à mettre? Même que les autres?

Serge.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
3 avril 2007 à 03:05
Salut Serge,
Ben, mettre les mots qui sont dans les options.
S'il n'y a pas un de ces mots, c'est pas bon !
ou alors, il faut qu'il y ait plusieurs conditions (plusieurs longueurs, 3 caractères, 4 ou 5 ).
Je n'ai pas su faire ça en fait. Dire s'il y a 3 caractères, 4 caractères ou 5 caractères (mais pas n'importe lesquels, ceux qui existent dans les options de cette liste).
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
3 avril 2007 à 03:54
Salut Serge,
<!-- Vérification des champs obligatoires du formulaire
remplacé par les //. Même Pb.
Ta correction n'emmene rien du tout pour IE.
http://txiki.free.fr (Ajouter une fiche)
Je broie du noir, vois plus rien ! :-(((

ça m'agace !
Et je ne te parles pas des autres soucis....
- Affichage de la date au format français dans les fiches détaillées (jj-mm-aaaa) malgrès les multiples conseils et tuto...
- A part le détail des fiches, les autres (modif et suppression) m'affichent la première dans la table. Là aussi, impossible de transmettre l'id car les pages sont protégées en début par un session_start et l'id se perd à cet endroit (à priori).
- et d'autres encore.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47 > txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024
3 avril 2007 à 06:07
Bon, tu devrais m'engager. C'est du travail à temps plein pour plusieurs jours tout ça.
J'ai trouvé le moyen d'avoir le numéro du choix. Je fais des tests en local pour avoir la valeur en texte.
Voilà, j'ai trouvé. Désolé, je n'avais pas utilisé de formulaires depuis un temps. Ce sera plus simple si tu modifies le html des options.
Je vais l'écrire plus bas, en détails.

Serge.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
3 avril 2007 à 03:44
D'accord. Assez facile.
Hum, encore le message erroné. Le message qui apparaît prouve que le javascript fait quelque chose. Le script doit avoir une valeur de groupe vide pour afficher le message. Je vais regarder encore tes codes de plus près.
n'oublies pas de mettre // en début de ligne des commentaires dans le script. C'est d'ailleurs bizarre que ça ne cause pas une autre erreur.

Serge.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
3 avril 2007 à 04:09
Tu devrais m'engager!
Nous allons trouver. Je me demandes si .value est correct pour les options. Je vais vérifier. Et oui, .value a une valeur nulle. Il faut changer la détection.
Serge.
0
Serge_La Messages postés 407 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 3 mars 2009 47
3 avril 2007 à 06:43
Bonsoir txiki,

Value retourne nul sur IE parce qu'il faut le définir comme attribut de chaque option pour lui. Il y a plusieurs manières de fonctionner. Je vais prendre la manière la plus simple sans le DOM (document object model) pour ton code.
Procédure:
Premièrement, tu dois mettre un attribut "value" dans chacune des options qui ont une valeur, dans le html. Je te met un exemple, celui de groupe:
            <select name="groupe">
             <option> </option>
             <option value="m&eacute;tier">m&eacute;tier</option>
            <option value="management">management</option>
            <option value="SI de gestion">SI de gestion</option>
            <option value="poste de travail">poste de travail</option>
            </select>


Bon, ça c'est si tu veux la valeur identique testée dans le javascript. Tu pourrais aussi encoder les valeurs. Mais ça pourrait devenir mélangeant.

Cette fois, ça devrait déjà fonctionner avec le javascript que tu as et la modification que je t'ai donné.

Deuxièmement, il faut ajuster le javascript pour ce que tu veux. Je vais t'envoyer le résultat dans quelques minutes.

Serge.
0