[php] pitite question

Fermé
eliah - 4 mai 2005 à 15:37
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 9 mai 2005 à 10:26
Comment faire??

Je veux dans mon formulaire pour un champs machin donnée

2 possibilité d'entrée les données dans ma base.

Soit par selection d'un fichier

Soit en tapant les données dans un textarea.

J'ai ecrit un script mais celui ci ne fonctionne pas:

<td><br><b>Machin : </b></td>
  </tr>
  <tr><td><INPUT type="file" name="machin" value="'.$ligne[3].'"> </INPUT></td></tr>
  <tr>
    <td>
    <? 
   if ($action == 'visualiser'){
   	if($ligne[3] != ''){
  echo '.$ligne[3].';}
  else{ 
  echo'.$ligne[4].';}
    }
    else {
   echo '<TEXTAREA NAME="machin" cols="60" rows="10" value="'.$ligne[4].'"></TEXTAREA>';
   }
    ?></td>


les $ligne[] sont des variables qui sont sensé recuperer les valeurs entrées dans le formulaire
A voir également:

5 réponses

la pitite question est toujours d'actualité :)
0
Fada09 Messages postés 1701 Date d'inscription lundi 15 septembre 2003 Statut Contributeur Dernière intervention 4 septembre 2010 539
6 mai 2005 à 09:34
Salut,

Je sais pas trop si j'ai LA solution mais je pense que tes deux champs (input et texxtarea) ne devrait pas avoir le même attribut name="machin" car si je me trompe pas lorsque tu valide ton formulaire tu auras toujours le contenu du dernier(ça j'en suis pas certain mais bon...)

Ensuite tu as une petite erreur dans ton code : une balise input n'a pas de balise fermante. Il faut donc écrire :
<INPUT type="file" name="machin" value="'.$ligne[3].'" /> 


et non
<INPUT type="file" name="machin" value="'.$ligne[3].'"> </INPUT>




;-)
~ ~ Fada ~ ~ : Member of #Star!alco
0
Et tu pense que ca marchera meme si le textarea et l'autre sont destinés au meme champs.

Et dans ce cas la, pour recuperer mes valeur est ce que je dois faire un test du genre:

Si la valeur du fichier a telecharger n'est pas nul
recuperer sa valeur et la mettre dans le champ

Sinon *
recuperer la valeur du textarea et la mettre dans le champs
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 mai 2005 à 09:32
--
~ lE CONTROLE, C'EST LE POUVOIR  ~
0

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

Posez votre question
Si vous pourriez etre plus claire parce que la je suis pommé en fait.

Pourtant je pense pas que ce que j'ai envie de faire soit très compliqué.

Je me reexplique:

je veux pouvoir pour un meme champs de ma case le remplir de deux manière différente:

Soit par un textarea soit en telechargent un fichier.

Pour le code que j'ai fait voir le 1er post.

Répondez moi s'il vous plait
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 mai 2005 à 10:26
Si j'ai bien compris, tu as une case (ton champ) et tu veux le remplir soit par importation des données d'un fichier, soit par un TextArea. Donc ta case, soit c'est le TextArea même, soit c'est ton truc louche que tu as mis dans ton code.

Pourquoi ne ferais tu pas plus simple, a savoir la chose suivante :
Tu as ton Text Area sur ta page et l'utilisateur peut écrire dedans(normal quoi). Tu lui propose sous forme d'un bouton submit d'ouvrir un fichier et importer ce qu'il y a dans ce fichier. C'est tout.

Donc : tu as deux éléments : ton TextArea et un bouton pour chercher le fichier, il te reste à écrire ce qu'il y a dans le fichier dans ton textArea. Pour cela, il faut que le choix du fichier valide le formulaire pour que la page soit rafraichie et que tu puisse faire un traitement( ici le traitement est d'écrire dans le TextArea le contenu d'un fichier si un fichier a été selectionné).

Tu peux forcer un rafraichissement en faisant un :
header("location: bidule.php?fich=$nom_fichier");


Comme ca au raffichage de ta page, dans ton script tu met un controle sur le traitement pour écrire dans le textArea :
if(isset($_GET['fich'])){
// ouverture du fichier
// ecriture dans le textArea
// ....
}
0