cs_BumRush09
Messages postés12Date d'inscriptionsamedi 14 février 2009StatutMembreDernière intervention21 janvier 2010
-
25 mai 2009 à 11:52
cs_BumRush09
Messages postés12Date d'inscriptionsamedi 14 février 2009StatutMembreDernière intervention21 janvier 2010
-
25 mai 2009 à 15:55
bonjour,
j'ai un probleme avec des fonctions javascripts qui permettent de modifier dynamiquement le contenu de champ textbox, elle fonctionnent seulement si je retire la balise du formulaire, meme un "alert".
sinon l'erreur est :"cet objet ne gère pas cette méthode..."
voici un petit bout de code :
<script>
function quantite_frais(link)
{
val_quantite_frais=link.value;
document.forms[0].getElementById('montant_total_frais').value=(val_montant_frais*val_quantite_frais)+((val_montant_frais*val_quantite_frais)*val_marge_frais);
}
</script>
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 25 mai 2009 à 15:20
>>Mais dans ce cas pourquoi il ne trouve pas les fonctions
>>dans le script du dessus
déjà, relis ce que je te disais
link, name élements = nom function....
après on verra !
et pour test test, ne garde que l'essentiel
tu remettras au fûr et à mesure en testant
cs_BumRush09
Messages postés12Date d'inscriptionsamedi 14 février 2009StatutMembreDernière intervention21 janvier 2010 25 mai 2009 à 11:55
rebonjour, edit ce n'est pas un formualire en "GET" mais en "POST"
j'ai un probleme avec des fonctions javascripts qui permettent de modifier dynamiquement le contenu de champ textbox, elle fonctionnent seulement si je retire la balise du formulaire, meme un "alert".
sinon l'erreur est :"cet objet ne gère pas cette méthode..."
voici un petit bout de code :
<script>
function quantite_frais(link)
{
val_quantite_frais=link.value;
document.forms[0].getElementById('montant_total_frais').value=(val_montant_frais*val_quantite_frais)+((val_montant_frais*val_quantite_frais)*val_marge_frais);
}
</script>
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 25 mai 2009 à 12:41
bonjour,
__ si tu nous mettais la page html résultante et pas le php,
ça irait bien mieux pour nous !
__ éviter des noms connus du javascript ( link par exemple )
__ document.forms[0].getElementrById ?
pourquoi ne pas mettre un name et utiliser document.name_formulaire
ou un id et faire document.getElementById ('id du formulaire')
ça évite que ce soit obligatoirement le 1er formulaire
t'es sûr qu'on peut utiliser getElementById sur
autre chose que document ?
__ onchange="quantite_'.$table.'(this)"...
tu vas donc avoir autant de fonction que de quantite créées ?
met le même name pour tous et utilise
et tu génères plusieurs lignes ? c'est possible ou pas ?
oui : met le même name et utilise
document.name_formulaire.name_champ[index]
il te reste à gérer le cas où il n'y a qu'une seule
ligne de crééer ( crée une ligne bidon caché ) et commence
index à partir de 1
non : pourquoi un name avec une variable php alors
@+
cs_BumRush09
Messages postés12Date d'inscriptionsamedi 14 février 2009StatutMembreDernière intervention21 janvier 2010 25 mai 2009 à 13:34
merci de t'être penché sur le sujet
j'ai oublié quelques points importants désolé :
- le problème existe avec un simple "alert()" dans le script dès que la balise "form" est présente, sinon les fonctions javascript s'éxécute correctement
- '.$table.' est utilisé car j'ai le même traitement plusieurs fois à un mot près
- j'en vient ici justement car l'utilisation d'un tableau dynamique javascript avec ligne caché que l'on dupplique ne permettait pas l'accès aux autres élement que celui appelé par la fonction
-voici le code simplifié :
<script>
function quantite_frais(link)
{
alert("fonction javascript");
}
</script>
<script type ="text/javascript">
/***** frais *****/
//fonction mise à jour var globale quantité frais
function quantite_frais(link)
{
alert("fonction javascript");
//val_quantite_frais= link.value;
//document.getElementById('montant_total_frais').value=(val_montant_frais*val_quantite_frais)+((val_montant_frais*val_quantite_frais)*val_marge_frais);
}
//fonction mise à jour var globale marge frais
function marge_frais(link)
{
//var val_marge_frais=link.value;
//document.getElementById('montant_total_frais').value=(val_montant_frais*val_quantite_frais)+((val_montant_frais*val_quantite_frais)*val_marge_frais);
}
// mise à jour var globale identifie nature frais choisie
function nature_frais(link)
{
/*var val_nature_frais=link.selectedIndex;
if(val_nature_frais==0)
{
val_montant_frais=taux_km_devis_utilisateur;
document.getElementById('montant_frais').value=taux_km_devis_utilisateur;
document.getElementById('montant_total_frais').value=(val_montant_frais*val_quantite_frais)+((val_montant_frais*val_quantite_frais)*val_marge_frais);
}
else
{
val_montant_frais=taux_frais[val_nature_frais];
document.getElementById('montant_frais').value=taux_frais[val_nature_frais];
document.getElementById('montant_total_frais').value=(val_montant_frais*val_quantite_frais)+((val_montant_frais*val_quantite_frais)*val_marge_frais);
}*/
}
//fonction écriture montant frais
function montant_frais(link)
{
//val_montant_frais=link.value;
//document.getElementById('montant_total_frais').value=(val_montant_frais*val_quantite_frais)+((val_montant_frais*val_quantite_frais)*val_marge_frais);
}
/***** variable frais *****/
var val_nature_frais=0;
var val_quantite_frais=1;
var val_marge_frais=0.2;
var val_montant_frais=2;
//tableau des taux frais récupère résultat requête php en tête
var taux_frais = new Array();
var taux_frais=["0.355","40","50"];
var taux_km_devis_utilisateur=0.6;
</script>
Détail Frais
<script language="Javascript">
//calcul largeur et hauteur de la fenetre
if (document.body)
{
var larg = (document.body.clientWidth);
var haut = (document.body.clientHeight);
}
else
{
var larg = (window.innerWidth);
var haut = (window.innerHeight);
}
var taille = larg; // Longueur du menu
var taille2 = 30; // Hauteur du menu
var couleur_fond = "#BEC6CE"; //couleur de fond du menu
var couleur_rollover = "YELLOW"; //couleur de la cellule au passage de la souris
var couleur_texte = "#FFFFFF"; //couleur du texte
var couleur_texte_over = "#000000"; //couleur du texte lors du passage de la souris
var taille_texte = 2; //Taille de la police
var police_texte = "Verdana"; //Type de police (Arial, Verdana...)
var target = true; // True si ouverture dans le même document
var frame = ""; // Si frame, placer target à true et indiquer le nom de votre frame
var nbelem = 6; // Nombre d'éléments (categories)
var titre = new Array(nbelem);
var liens = new Array(nbelem);
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 25 mai 2009 à 14:47
inutile de tout nous mettre ! ça décourage !!!!
extrait l'essentiel ... le nécessaire, tout le nécessaire,
mais rien que le nécessaire...
et regarde la console d'erreur ou active le debogage !
exemple,( avec FF ):
Erreur : nature_frais is not a function
Fichier Source : file:///D:/Mes%20documents/%C3%A0%20D%C3%A9truire/!test.htm Ligne : 1
Erreur : nature_frais is not a function
Fichier Source : file:///D:/Mes%20documents/%C3%A0%20D%C3%A9truire/!test.htm Ligne : 1
Erreur : quantite_frais is not a function
Fichier Source : file:///D:/Mes%20documents/%C3%A0%20D%C3%A9truire/!test.htm# Ligne : 1
</td>contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger FireBug, ----
Internet
Explorer
, activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux (pour IE < 8) : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS, ----
K-Meleon
, utils / Cons, ----
Opera
, utils / Asole d'erreurs, ----
Safari
, Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
----
cs_BumRush09
Messages postés12Date d'inscriptionsamedi 14 février 2009StatutMembreDernière intervention21 janvier 2010 25 mai 2009 à 15:05
ok merci pour tes conseil je télécharge ça.
Mais dans ce cas pourquoi il ne trouve pas les fonctions dans le script du dessus quand il y a le formulaire et qu'il les trouve lorsqu'il n'y ai pas?
cs_BumRush09
Messages postés12Date d'inscriptionsamedi 14 février 2009StatutMembreDernière intervention21 janvier 2010 25 mai 2009 à 15:55
ok alors tout d'abord merci ça fonctionne pour une premier post je suis impresionné que ça aille si vite.
le problème venait de la fonction qui à le meme nom que l'input text.
au risque de passé pour un mito j'ai dans une autre page le même traitement où les noms et fonctions sont identiques donc je suis quand meme étonné.
enfin j'ai peut être loupé quelque chose.