Problème AJAX et balise <form>

cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010 - 24 nov. 2008 à 15:06
Visibeo Messages postés 6 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 5 août 2010 - 3 août 2010 à 15:17
Bonjour,

J'ai récuperé un petit script qui me permet de faire de l'upload ajax (http://blogs.developpeur.org/cyril/archive/2007/03/24/ajax-et-upload-part-1.aspx), merci a son auteur.

Voici la ligne qui pose problème :
document.getElementById('mabalisediv').innerHTML = '<form id="test" name="test" action="test.php"></form>';

Cela me génère une erreur d'exécution inconnue JavaScript sous IE... Le problème vient de la balise 'form' car quand je l'enleve il n’y a plus de problème ! De plus quand j'execute sous FireFox cela fonctionne parfaitement...
J'ai une faible expérience du javascript, pouvez-vous m'aider ?

valentino
alias

7 réponses

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
24 nov. 2008 à 15:17
Je te conseilles de créer tes éléments par le DOM :

var maForm = document.createElement('form');
maForm.setAttribute('action', 'test.php');
...
document.getElementById('mabalisediv').appendChild(maForm);
0
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
24 nov. 2008 à 15:58
Merci pour ta reponse mais le problème c'est que j'injecte plusieurs formulaire d'un coup pour le rafraichissement de toutes les pièces jointes uploadés, voici un extrait de mon code :

$objet_pj = new CPj($db,'',$clef_ticket);
$result = $objet_pj->DataTicket();
$ligne_pj="";
$pj="";
if ($result!==false)
{                        
   while ($data_pj = mysql_fetch_array($result))        
   {
      $modif_pj="
      <form name="maj_pj".$data_pj['clef_pj']."" action="majclimat.php" method="post" target="hiddeniframe">
      
      
      <td class="v"></td>
      </form>";
      $suppr_pj="
      <form name="suppr_pj".$data_pj['clef_pj']."" action="majclimat.php" method="post" target="hiddeniframe">
      
      
      </form>
      <td class="v">modifier | supprimer</td>";
      $ligne_pj.="<tr><td class="e">".$data_pj['nom_pj']."</td>".$modif_pj.$suppr_pj."</tr>";
   }
$debut_pj=" Pièce jointe |Déscription |Action |\";                   
$pj =$debut_pj.$ligne_pj."
";
}

et ensuite j'envoi le tout par
document.getElementById('mabalisediv').innerHTML = '".$pj."';
0
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
24 nov. 2008 à 16:56
J'ai trouvé cette discution que sa rapproche de mon probleme :

http://www.javascriptfr.com/forum/sujet-INNERHTML-LTFORM-GT-RESULTAT-INCOMPREHENSIBLE_957466.aspx

valentino
alias
0
Visibeo Messages postés 6 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 5 août 2010
3 août 2010 à 02:05
Bonjour,

J'ai déjà rencontré ce type de souci, qui était du à des retours de chariots dans le .js

Pour corriger, si c'est le même problème, je te conseille ceci (sans espace après le \, juste un retour à la ligne)

var monForm='<form id="test" name="test" action="test.php">\
\
</form>';
document.getElementById('mabalisediv').innerHTML = monForm;
0

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

Posez votre question
Visibeo Messages postés 6 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 5 août 2010
3 août 2010 à 02:10
Je n'avais pas tout lu...

A tout hasard, juste une question, as-tu tenté ceci ?

<?php

echo "document.getElementById('mabalisediv').innerHTML = '".stripslashes($pj)."';";

?>
0
cs_Valentino Messages postés 81 Date d'inscription vendredi 19 juillet 2002 Statut Membre Dernière intervention 3 août 2010
3 août 2010 à 09:06
Bonjour Visibeo,

Oula tu reviens sur un sujet que j'ai totalement oublié !
Me suis énormement amélioré en JavaScript et manipulation du DOM et n'ai plus ce genre de problème. Et oui tu as raison il faut protéger les quotes avec stripslashes.

Bonne journée
0
Visibeo Messages postés 6 Date d'inscription lundi 2 août 2010 Statut Membre Dernière intervention 5 août 2010
3 août 2010 à 15:17
Hello Valentino,

Je n'avais pas vu la date du post, en effet ça date !

Bonne journée

Séb
0
Rejoignez-nous