Upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Upload

par seinto28 » 28 juil. 2005, 10:44

Non, javascript est activé, j'ai quelques fonction js qui fonctionne mais je travail avec un firefox 0.8, est-ce que cette fonction est supportée par cette version?

par Axel » 28 juil. 2005, 10:34

Une question bête, ton javascript n'est pas désactivé?

par seinto28 » 28 juil. 2005, 09:55

Merci pour le conseil, je crois que j'ai pas mal de page a retravailler :cry: :cry:
Je vais passer du temps sur les tuto, je crois en avoir besoin!!!


J'ai appliquer ça sur ma page d'upload multiple et elle fonctionne toujours mais pas d'ajout d'input dans mon tableau.

:cry:

par Cyrano » 28 juil. 2005, 09:22

Trop lourd: tu fais interpréter inutilement ton HTML par PHP ce qui ralentit ton application : ferme la balise PHP, mets ton HTML en code normal et r'ouvre ensuite la balise PHP : même à l'intérieur d'une fonction, ce système sera valide.

par seinto28 » 28 juil. 2005, 08:42

J'ai mis des \" car j'ai placé ma fonction dans ma page php et donc elle est dans un echo. Il fallait que je desensibilise les ".

Sinon, je n'ai pas de message d'erreur, ça m'insere juste les <br> et pas dans mon tableau!!
<?

echo "
<html>
<head>
<script type=\"text/javascript\">

<!--/*--><![CDATA[//> <!--

var nbre_photos=0;

function ajouter() {

//creation du sous-noeud Input File
var tr = document.createElement(\"tr\");
var td = document.createElement(\"td\");
var tdF = document.createElement(\"/td\");
var trF = document.createElement(\"/tr\");
var elem_input_photo = document.getElementById(\"input_photo\");
var inputF = document.createElement(\"input\");
var br = document.createElement(\"br\");
var typeI = document.createAttribute(\"type\");
typeI.nodeValue = \"file\";
inputF.setAttributeNode(typeI);
var nameI = document.createAttribute(\"name\");
nameI.nodeValue = \"photo[]\";

inputF.setAttributeNode(nameI);
elem_input_photo.appendChild(br);
elem_input_photo.appendChild(tr);
elem_input_photo.appendChild(td);
elem_input_photo.appendChild(tdF);
elem_input_photo.appendChild(td);
elem_input_photo.appendChild(inputF);
elem_input_photo.appendChild(tdF);
elem_input_photo.appendChild(trF);

// Incrémentation de la variable nbre_photos
nbre_photos++;

document.getElementById(\"nbrephotos\").value=nbre_photos;


}

function remove() {
document.getElementById(\"input_photo\").removeChild(document.getElementById(\"input_photo\").lastChild);
document.getElementById(\"input_photo\").removeChild(document.getElementById(\"input_photo\").lastChild);
nbre_photos--;
}


//--><!]]>
</script>

</head>

<body>


<form action=post method=page2.php>

<div id=input_photo></div>

<table>

<tr>
  <td>
    utilisateur
  </td>
   <td>
     <input type=text name_utilisateur>
  </td>
</tr>

<tr>
  <td>
    date
  </td>
   <td>
     
  </td>
</tr>

<tr>
  <td>
     <a href=javascript:ajouter();>Ajouter</a>

     <a href=javascript:remove();>Enlever</a>
  </td>
</tr>

</form>
</table>
</body>
</html>
";

?>

Voila mon code un peu simplifié

:roll:

par Axel » 27 juil. 2005, 16:49

pourquoi as tu mis \" partout les " simples suffisent.

ensuite quelque erreur as tu? regarde avec le debbuger de mozilla
j'ai fais un essai et ça fonctionne!!!

fais attention à un truc il faut que tu appelles la fonction ajoute() une fois que le div" input_photo" a été créer et pas avant sinon tu as une erreur.

par seinto28 » 27 juil. 2005, 15:41

Merci pour le lien, Javascript me parait un peu plus clair maintenant.
J'ai fait ça mais sans succes

Code : Tout sélectionner

function ajouter() { //creation du sous-noeud Input File var tr = document.createElement(\"tr\"); var td = document.createElement(\"td\"); var tdF = document.createElement(\"/td\"); var trF = document.createElement(\"/tr\"); var elem_input_photo = document.getElementById(\"input_photo\"); var inputF = document.createElement(\"input\"); var br = document.createElement(\"br\"); var typeI = document.createAttribute(\"type\"); typeI.nodeValue = \"file\"; inputF.setAttributeNode(typeI); var nameI = document.createAttribute(\"name\"); nameI.nodeValue = \"photo[]\"; inputF.setAttributeNode(nameI); elem_input_photo.appendChild(br); elem_input_photo.appendChild(tr); elem_input_photo.appendChild(td); elem_input_photo.appendChild(inputF); elem_input_photo.appendChild(tdF); elem_input_photo.appendChild(trF); // Incrémentation de la variable nbre_photos nbre_photos++; document.getElementById(\"nbrephotos\").value=nbre_photos; }

Faut'iol utiliser : insertCell()

par Axel » 27 juil. 2005, 15:16

la réponse est dans ton code, les lignes suivantes

Code : Tout sélectionner

var inputF = document.createElement(\"input\"); var br = document.createElement(\"br\");
permettent de créer des balises avec la fonction createElement .

Tu n'as qu'à tester un truc du genre:

Code : Tout sélectionner

var tr = document.createElement(\"tr\"); var td = document.createElement(\"td\");
Mais je pense qu'il faudra modifier les lignes de l'input et du br pour que cela marche.

Regarde ici, tu auras une réponse:
http://fr.selfhtml.org/javascript/objet ... te_element

consulte souvent ce site car tu as énormément d'informations et de scripts qui pourront t'aider.

par seinto28 » 27 juil. 2005, 14:23

J'ai reussi a intégrer la fonction d'ajout et de deletion de champs a mon formulaire mais comme celui-ci est dans un tableau, j'aimerais savoir s'il est possible de modifier cette fonction pour inclure les champs ajouter dans un <tr><td></td></tr>?

Je redonne le code:

Code : Tout sélectionner

function ajouter() { //creation du sous-noeud Input File var elem_input_photo = document.getElementById(\"input_photo\"); var inputF = document.createElement(\"input\"); var br = document.createElement(\"br\"); var typeI = document.createAttribute(\"type\"); typeI.nodeValue = \"file\"; inputF.setAttributeNode(typeI); var nameI = document.createAttribute(\"name\"); nameI.nodeValue = \"photo[]\"; inputF.setAttributeNode(nameI); elem_input_photo.appendChild(br); elem_input_photo.appendChild(inputF); // Incrémentation de la variable nbre_photos nbre_photos++; document.getElementById(\"nbrephotos\").value=nbre_photos; }

par seinto28 » 26 juil. 2005, 12:00

Pas encore mais je vais continuer de mon coté!

par Cyrano » 26 juil. 2005, 11:53

[Résolu] :?:

par seinto28 » 26 juil. 2005, 11:51

Je vais essayer d'adapter ce code a mes besoins.
Ce n'est pas exactement ce que je voulais faire mais ça devrait aller.
Merci pour tout. =D>

par Axel » 26 juil. 2005, 11:14

version de ...? php ? navigateur? je l'ai testé sur IE6.0 et mozilla 1.7

sinon tu peux regarder ce script qui correspond aussi à ce que tu veux faire à part qu'il faut cliquer sur des liens pour ajouter ou supprimer un input file

http://www.phpfrance.com/forums/voir_sujet-6294.php

par seinto28 » 26 juil. 2005, 11:06

J'ai essayé sur IE et sur firefox -> rien.
Aucun problème signalé par la console javascript. J'ai essayé de mettre la page sur un autre serveur, toujours rien!
Bon, je vais devoir faire autrement, si tu ne sais pas.

Ce n'est pas possible que cela vienne d'un problème de version...?

Merci

par Axel » 26 juil. 2005, 10:42

Non il semble que tout soit correct à part peut-être le fait de "calider" une image :langue: .

Si tu es sur IE regarde dans la barre d'état en bas à gauche si tu n'as pas un panneau jaune avec un ! , si oui clique 2 fois dessus pour voir l'erreur

fais aussi un essai avec mozilla et cette fois il faut aller dans outils->Développement Web-> console javascript

Sinon je sèche, je l'ai essayé sur 2 ordi différents et ça fonctionne sur les 2 navigateur :x