Voici le bout de code, comme demandé. Pour vous situer un peu, mon site permet aux administrateurs système de demander des machines virtuelles. Ils peuvent éditer leur demandes, modifier les VM existantes, demander des clones, des templates, etc...
Dans mon fichier html, j'inclus le fichier de fonctions javascript :
1 2 3
| <?PHP
include("./incl_fonctions.js");
?> |
La première fonction est utilisée lors de la modification d'une demande. Je vais récupérer la config de la VM dans la DB que je stocke dans des variables PHP, puis je transmet ces valeurs dans des variables javascript. Selon la valeur de ces variables, certains éléments de mon formulaire sont activés, désactivés, affichés, cachés, ...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| function InitConfigOS()
{
var StrOSName = '<?php echo($StrOSName); ?>';
var IntOSPreInst = '<?php echo($IntOSPreInst); ?>';
var StrOSType = '<?php echo($StrOSType); ?>';
var IntOSArch = '<?php echo($IntOSArch); ?>';
if(IntOSPreInst == "1") //OS pre-installe = oui
{
document.getElementById('OSYes').checked=true;
}
else
{
document.getElementById('OSNo').checked=true;
document.getElementById('txtOSKey').value='';
document.getElementById('txtOSKey').disabled=true;
}
if(StrOSType == "STANDARD")
{
document.getElementById('StandardOS').checked=true;
document.getElementById('selOSid').disabled=false;
document.getElementById('selOSid').value=StrOSName;
document.getElementById('txtOSOther').value='';
document.getElementById('txtOSOther').disabled=true;
}
else
{
document.getElementById('SpecificOS').checked=true;
document.getElementById('txtOSOther').disabled=false;
document.getElementById('txtOSOther').value=StrOSName;
document.getElementById('selOSid').disabled=true;
}
//Selection 32 ou 64bit
document.getElementsByName('rbOS32-64')['OS'+IntOSArch].checked=true;
} // fin fonction InitConfigOS |
Voici une autre fonction qui est utilisée à peu près sur tous mes formulaires où on trouve des input de type textbox. Par exemple, lorsque je demande une adresse IP, je remplace tout ce qui n'est pas des chiffres et des "." par un retour arrière :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function ChkStr(StrField, StrValue)
{
// Remplacement des caracteres interdits par un backspace lors de la frappe
var digits = new RegExp(StrValue);
var verif;
for(i = 0; i < StrField.value.length; i++)
{
verif = digits.test(StrField.value.charAt(i));
if(verif == false)
{
StrField.value = StrField.value.substr(0,i);
}
}
} //Function ChkStr |
Cette 2ème fonction n'est pas exécutée (le message dit qu'elle est introuvable) et j'obtiens un message d'erreur relatif à l'initialisation de la variable javascript "StrOSName" :
var StrOSName = '<?php echo($StrOSName); ?>';
En effet, la variable PHP $StrOSName est inconnue (dans le cas où on n'est pas en train d'éditer une demande) et il ne va pas plus loin.
Je pense que la solution la plus facile sera d'éclater ces fonctions dans différents fichiers et de ne regrouper QUE les fonctions qui sont utilisées partout.
Meilleures salutations,
Alex
Partager