11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
j'ai un petit souci avec cette fonction sous IE, ça marche correctement sur FF4.

j'ai un formulaire dont la déclaration est la suivante:
<form target="FV" action="pages/devis.php" method="post" id="Fdevis" name="devis">

un bouton dont le code est le suivant:
<input type="button" onclick="generatepdf(devis);" value="Votre devis en PDF" />

et un script javascript:
<script language="javascript" type="text/javascript">

function generatepdf(the_form) {
my_form = eval(the_form);
my_form.action = 'pages/pdf.php';
my_form.submit();
window.open("http://localhost/pages/devis.pdf","devis","menubar=no, status=no, scrollbars=no, menubar=no, width=800, height=800");
}
</script>

sous IE j'ai le message d'erreur suivant:
Cet objet ne gère pas cette propriété ou cette méthode, la ligne en cause dans le script est:
my_form = eval(the_form);

Sous firefox avec ce même code, j'arrive correctement à générer mon pdf.

Merci pour votre aide.
Bonjour,

je ne comprends absolument pas, comment FF peut faire un eval() sur ton " devis " alors qu'il n'est déclaré nul part.

Ca serait le nom de ton formulaire ? Et FF arrive à comprendre que " devis " est le formulaire de name="devis" ? Et en plus, FF arrive à faire un eval() sur un formulaire ? Que fait et à quoi sert un eval() sur un formulaire ?

Et comment arrives-tu à submiter un formulaire tout en ouvrant une popup ( sic ) ?

As-tu une page en ligne pour me permettre de comprendre comment est agencé ton truc ?
Modifié par n3k0 (24 May 2011 - 13:09)
Merci pour ton analyse.

nom du formulaire = "devis" son id="Fdevis"
...
<form target="FV" action="pages/devis.php" method="post" id="Fdevis" name="devis">
...

le bouton:
<input type="button" onclick="generatepdf('devis');" value="Votre devis en PDF" />

le script js: (dernière modif)
<script type="text/javascript">

function generatepdf(theform) {
var my_form = eval(theform);
my_form.action = 'pages/pdf.php';
my_form.submit();
window.open("http://localhost/pages/devis.pdf","devis","menubar=no, status=no, scrollbars=no, menubar=no, width=800, height=800");
}

le script pdf.php sur trouve dans le répertoire /pages et c lui qui me génère le pdf avec la librairie fpdf.

il est en ligne le site : http://www.plansdetravail.fr --> faire un devis.

Merci encore pour ton aide.
Peut-être essayer de mettre :
onclick="generatepdf('Fdevis');"
et
my_form = document.getElementById(the_form);

Je pense que cela pourra bien régler le soucis sous IE.
Je viens de faire des tests avec la syntaxe suivante (my_form = document.getElementById(the_form);) mais j'ai tjs le même problème. Je vais continuer à chercher encore.

Merci.
[RESOLU]

Il y avait un champ input en hidden qui portait le nom "action", donc conflit avec le code suivant my_form.action = 'pages/pdf.php';
Sous FF ça passait mais pas sous IE.
Modifié par stouil (25 May 2011 - 09:24)
Il y avait un champ input en hidden qui portait le nom "action", donc conflit avec le code suivant my_form.action = 'pages/pdf.php';
Sous FF ça passait mais pas sous IE.
Modifié par stouil (25 May 2011 - 09:23)