Eléphanteau du PHP |
10 Messages
10 févr. 2011, 16:57
Je sais bien que l'utilisation du foreach ne nécessite pas de compteur mais le faut d'utiliser un foreach au lieu d'un for m'a perturbé, j'ai pas encore tout modifier dans mon javascript pour générer les bonne choses. Le problème aujourd'hui je crois, c'est que je comprends de moins en moins au fur est a mesure que je code. je récapitule du début avec mon code cette fois ça.
Voici une partie de mon index:
<form method="post" class="form" action="new.php" enctype="multipart/form-data" >
<fieldset id="main">
<legend>Ajout danimation</legend>
<label>Titre : <input type="text" name="titre" /></label><br/>
<label><TEXTAREA rows="7" cols="44" name="description">Tapez ici votre description</TEXTAREA></label>
<fieldset id="upload">
<legend>Choix des images</legend>
<input id="pic" type="file" name="photo_1" onchange="aff(this)"/><br />
<span id="leschampsa_4"><a href="javascript:create_champa(4)">Ajouter un champs</a></span>
</fieldset>
mon script php qui génère mon xml:
// Ouverture du fichier
$file = new DOMDocument();
// Création du fichier en mémoire
$file = new DOMDocument('1.0', 'utf-8');
$file->formatOutput = TRUE;
// Création du noeud racine
$root = $file->createElement("global"); //On crée l élément racine
$root = $file->appendChild($root); //On insère la racine dans le document
// Création du noeud channel
$photos = $file->createElement("photos");//On crée un élément photos
$photos = $root->appendChild($photos);//On ajoute cet élément à la racine
$i=0;
foreach($_POST as $inputName => $inputValue)
{
$tab = explode($inputName);
if( $tab[0] == "pic" )
{
// Création des noeuds photo
$photo = $file->createElement("photo");//On crée un élément photo
$photo = $photos->appendChild($photo);//On ajoute cet élément aux photos
$varphoto= $file->createTextNode($_FILES['photo_'.($i+1)]['tmp_name']);
$varphoto = $photo->appendChild($varphoto);
// Création des noeuds photo
$comment = $file->createElement("comment");//On crée un élément comment
$comment = $photos->appendChild($comment);//On ajoute cet élément aux photos
$varcomment= $file->createTextNode($_POST['desphotos'.$i]);
$varcomment = $comment->appendChild($varcomment);
$i++;
}
}
et mon java script:
Code : Tout sélectionner
countinputs=0
maxinputs=4
function aff(obj){
nameok=false;
var saisie=obj.value.replace(/.*\\(.+\.(gif|jpg|jpeg|png))$/i,'$1');
nameok= saisie.match(/^.+\.(gif|jpg|jpeg|png)$/i);
if(!nameok){alert('pas bon le fichier');
obj.value='';}
}
function create_champa(i) {
var i2 = i + 1;
document.getElementById('leschampsa_'+i).innerHTML = '<input id="pic" type="file" name="photo_'+i+'" onchange="aff(this)"></span>';
document.getElementById('leschampsa_'+i).innerHTML += (i <= 6) ? '<br /><span id="leschampsa_'+i2+'"><a href="javascript:create_champa('+i2+')">Ajouter un champs</a></span>' : '';
}
je repasserais plus tard car la je sature

Mon code est pleins d'erreur. dsl