Modifier la valeur d'un élément pour la récupérer sous forme de formulaire [Résolu]

Signaler
-
 Qd -
Bonjour,

J'essaie de récupérer les valeurs que l'utilisateur a saisi dans un input texte lorsqu'il ajoute une nouvelle ligne. J'arrive à récupérer une valeur cependant s'il ajoute 2 lignes la valeur de la 1ére ligne est écrasé

Voici le code js :

 $(".btn-new").on('click',function(){
       $("#uploader2").append('<div class="row uploadDoc"><div class="col-sm-4"><div class="docErr">Veillez upload au format pdf, jpg, jpeg, png</div><!--error--><div class="fileUpload btn btn-orange"> <img src="https://image.flaticon.com/icons/svg/136/136549.svg" class="icon2"><span class="upl" id="upload">Parcourir</span><input type="file" name="file[]" class="upload up" accept="image/png, image/jpeg, .pdf" id="up" onchange="readURL(this);" required/><div class="invalid-feedback">Document obligatoire</div></div></div><div class="col-sm-1" id="pos_croix"><a href="#" class="test2"><i class="fas fa-times fa-xs" style="color:red;"></i></a></div><div class="col-sm-6"><input type="text" class="form-control" name="test" placeholder="Veuillez preciser le document que vous ajoutez" required pattern="^[A-Za-z -]+$"><div class="invalid-feedback">Veuillez saisir le document que vous souhaitez ajouter.</div></div></div>');
   });


Là ou ça me pose problème c'est l'élément "name="test" je ne sais pas comment faire pour qu'il arrive à différencier la première ligne par rapport à la deuxième ou même plus ...
Il peut ajouter autant de lignes qu'il le souhaite.

J'espère qu'on pourra m'aider car je ne sais pas comment m'y prendre.

2 réponses

Messages postés
32965
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 558
Bonjour,

Ton souci est de récupérer le contenu de tes champs lors du submit de ton formulaire ?
Donc, déjà, au niveau du Name tu peux faire
name="test[]" 

Ensuite, niveau php, il ne te restera plus qu'à boucler dessus.

Merci beaucoup j'étais resté bloquer sur la syntaxe en js alors que pour le coup il fallait le nommer correctement en HTML.

Au niveau de PHP j'ai réussi à faire le traitement voulu je laisse une partie du code si jamais quelqu'un tombe sur ce sujet :

// total files
 $countfiles = count($_FILES['file']['name']);

 for($i=0;$i<$countfiles;$i++){

  // Recuperer les infos postées
  $description = $_POST["test"][$i];

  $filename = $_FILES['file']['name'][$i];
 
  // Upload file
  move_uploaded_file($_FILES['file']['tmp_name'][$i],'img_tmp/'.$_GET["user_id"].'-'.$filename);

  $img_blob[$i]   = '';

  $img_nom[$i]  = $_GET["user_id"]."-".$filename;  

  $img_blob[$i] = file_get_contents ("./img_tmp/".$img_nom[$i]);

  // Requete
  $sql = <<<SQL_STATEMENT
  INSERT INTO img (img_id,img_nom,img_blob,img_date,img_description) VALUES (:user_id,:img_nom$i, :img_blob$i, NOW(), :description);
  SQL_STATEMENT;

  $requete = $pdo->prepare($sql);
  $requete->setFetchMode(PDO::FETCH_ASSOC);
  $requete->bindParam(":img_nom$i", $img_nom[$i]);
  $requete->bindParam(":img_blob$i", $img_blob[$i]);
  $requete->bindParam(':user_id', $_GET['user_id']);
  $requete->bindParam(":description", $description);
  $requete->execute();
  $requete->closeCursor();

 }