Récupérer les valeurs d'un champ au nom variable

Récupérer les valeurs d'un champ au nom variable - PHP - Programmation

Marsh Posté le 01-07-2006 à 12:59:48    

:hello:  
 
C'est encore moi ! [:dawa]
 
J'ai un petit problème concernant la récupération de données avec POST. Je m'explique. En tapant un nombre dans un formulaire, par ex 4, le script crée 4 champs a remplir. Ces champs se nomment " trucX ", ou X est un nombre. Pour 4, il y'aura 4 champs qui se nommeront truc1 truc2 truc3 truc4 .
 
J'aimerais récupérer le tout dans un fichier. Jusque la, pas de problèmes, j'y vais a la bidouille (note = $truc est le nombre total de liens) :
 
$trucw = fopen('trucs.php','w+');
fwrite($trucw, "<?php\n" );
$truct = "0";
 while(1) {
 if($truct == $truc) {
 break;
 }
        $truct++;
        fwrite($trucw, '$trucz'.$truct.' = '.$_POST["truc$trucz"].'; ');
        }
        fwrite($trucw, "?>" );
        fclose($trucw);
 
Vala ce que j'ai fait.  
 
Bon déja y'a t-il un moyen plus propre de faire ca ? Parce que la bon  :D
 
Ensuite comment faire pour ensuite récupérer toutes les variables de trucs.php ? Aucune idée la :pt1cable:  
 
Merci d'avance,
 
Shuny


Message édité par Infosactualite le 01-07-2006 à 13:01:21
Reply

Marsh Posté le 01-07-2006 à 12:59:48   

Reply

Marsh Posté le 01-07-2006 à 13:29:29    

Oula. Tu t'embête énormément.
 
Pourquoi est-ce que tu n'utilise pas du javascript ? Avec un lien, l'utilisateur ajoute autant de champs qu'il veut avec ou sans limite. Qu'en dis-tu ?
 
Je pourrais te filer un exemple si ca te tente ;)

Message cité 1 fois
Message édité par AlphaZone le 01-07-2006 à 13:30:01
Reply

Marsh Posté le 01-07-2006 à 13:40:40    

AlphaZone a écrit :

Oula. Tu t'embête énormément.
 
Pourquoi est-ce que tu n'utilise pas du javascript ? Avec un lien, l'utilisateur ajoute autant de champs qu'il veut avec ou sans limite. Qu'en dis-tu ?
 
Je pourrais te filer un exemple si ca te tente ;)


Erreur fatale :whistle:  
 
Je ne veux pas utiliser de java, merci qd même :jap:  
 
Shuny

Reply

Marsh Posté le 01-07-2006 à 13:51:23    

Java et Javascript n'ont rien à voir...

Reply

Marsh Posté le 02-07-2006 à 01:35:01    

gebruik a écrit :

Java et Javascript n'ont rien à voir...


 
+1
 
Tu pourrais éviter de modifier ton fichier PHP.
 
Tu fais un formulaire pour ton bouton ajouter_champ
Et un autre formulaire avec les champs en question.
 
Exemple de ce que tu pourrais faire :

Code :
  1. $ajout = false;
  2. if(isset($_POST['submit_ajout_champ'])){ // Si le bouton d'ajout de champ a été actionné
  3.   $nb_champ = $_POST['nb_champ'];
  4.   $ajout = true;
  5. }
  6. if($ajout){
  7.   echo '<form name="list_champ" action="ta_page.php" method="post">';
  8.   for($i=0; $i < $nb_champ; $i++){
  9.     // Affichage des champs
  10.   }
  11.   echo '</form>';
  12. }


 
 
Bien évidement, j'ai fais cela à l'arrache. C'est juste pour te montrer en gros. Cela demande un minimum d'algoritme pour que cela soit efficace.  
 
Voila, j'espère t'avoir été utile.
 
Bien entendu


Message édité par AlphaZone le 02-07-2006 à 01:36:26
Reply

Marsh Posté le 02-07-2006 à 12:13:27    

Salut,
 
perso je ferai un champ de type tableau, ça sera beaucoup plus simple à faire :
 
<form blabla>
       <p><input type="machin" name="truc[]" value="1" /></p>
       <p><input type="machin" name="truc[]" value="2" /></p>
       <p><input type="machin" name="truc[]" value="3" /></p>
</form>
 
là t'as trois champs, tu peux en créer autant que tu veux.
 
Pour récupérer toutes les valeurs des champs du fais ça :
 
<?php
if(isset($_POST['truc']) AND is_array($_POST['truc']))
{
           foreach($_POST['truc'] AS $valeur)
           {
                    echo $valeur,'<br />';
           }
}
?>
 
t'auras toutes les valeurs qui vont s'afficher, bref tu pourras récupérer ce que tu veux ;)

Reply

Marsh Posté le 02-07-2006 à 15:15:56    

Bon vala j'ai trouvé une solution :
 
 $trucr = "0";
 if($multi !== "non" ) {
 $buildarray = "array (\"\", ";
 while(1) {
 if($trucr == $truc) {
 $buildarray .= " );";
 break;
 }
 $trucr++;
    $buildarray .= '"'.$_POST["lien$trucr"].'"';
 if($trucr != $truc) {
 $buildarray .= ", ";
 }
 }
 }
 else {
 $buildarray = array("", $_POST['truc1']);
 }
 
Et ca marche :o
 
Merci a vous ;)
 
++ ;)

Reply

Marsh Posté le 02-07-2006 à 23:47:39    

C'est "space" quand même...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed