IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création de tableaux via formulaire d´ajout [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Par défaut Création de tableaux via formulaire d´ajout
    Bonjour,

    j´ai un formulaire assez simple de la forme :

    hôte : [______________]
    alias : [______________]
    IP : [______________]

    [ Valider ]

    je souhaite que chaque fois que je clique sur "valider" les données que j´ai saisi dans le formulaire s´ajoutent dans un tableau de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Array ( [0] => Array ( [hote] => hote1 [alias] => alias_1 [ip] => ip_1 ) 
            [1] => Array ( [hote] => hote2  [alias] => alias_2 [ip] => ip_2 ) 
            [2] => Array ( [hote] => hote3  [alias] => alias_3 [ip] => ip_3) )
    j´ai créée un objet hote et je peux utiliser la methode ajout_hote pour ajouter des hotes a mon tableau. Cela fonctionne tres bien si j appele plusieurs fois ma fonction à la main de la facon suivante :

    ajout_hote ("hote1 ", "alias_1", "ip_1");
    ajout_hote ("hote2 ", "alias_2", "ip_2");
    ajout_hote ("hote3 ", "alias_3", "ip_3);

    J´obtiens bien le tableau ci-dessus. Cependant si j´appele ma fonction je dirai de facon dynamique par le biais du formulaire j´obtiens le résultat ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => Array ( [hote] => hote1 [alias] => alias_1 [ip] => ip_1 ))
    Lors du premier ajout, c est bien le resultat que je souhaite avoir. Mais si dans la foulée je souhaite ajouter une hote numéro 2, les informations que j ai saisi effaceront les données du tableau pour prendre la place de l´hote précédement crée.

    Au debut je me suis dit que cela venait du fait que je n´ai pas créée de variable statiques dans ma fonction d´ajout. Hors même après la mise en place de variables statiques j´obtiens le même résultat. Je ne parviens pas à incriémenter mon indice du tableau qui accueillera le prochain hote.

    Je pense que mon problème vient surement de ma compréhension de la programmation objet et également de l´appel de fonctions. Il est peut être impossible de réaliser ce que je souhaite si je n´enregistre pas de compteur temporairement dans un fichier ou bien une variable de session ?

    J´avais également pensé aux cookies mais je ne sais pas trop ....

    Il y a également quelque chose que je ne comprend pas c´est pour quelles raisons je ne parvient pas à affichier les erreurs générées par PHP.

    j´ai une page index.php et les classes dans les fichiers .class.php qui sont inclus dans index.php. Si au debut du fichier index.php je rajoute la ligne error_reporting(E_ALL); et que je génére une erreur, la seule chose que j´obtiens est une page blanche. C´est très diffcile parfois pour débuger mon code ...

    Le but est d´éviter de passer par une base de données.

    Je vous remercie d´avance pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Sans voir un minimum de code c'est difficile de te répondre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Par défaut
    fichier index.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    include("host.class.php");
     
    $host = new ohost();
     
    echo "<form action='" . $_SERVER[´PHP_SELF´] . "' method='get'>";
    echo "hos_name : <input type='imput' name='hosts[host_name]'><br/>";
    echo "alias : <input type='imput' name='hosts[alias]'><br/>";
    echo "IP: <input type='imput' name='hosts[address]'><br/>";
    echo "<input type='submit' value='valider' name='ok'>";
    echo "</form>";
     
    if (isset($_GET['hosts']) && !empty($_GET['hosts']) ) {
          $hosts = $_GET['hosts'];
          $host->add_host($hosts);
          // affichage du tableau
          $host->p_hosts();
    }
    fichier host.class.php et le code de ma fonction d´ajout est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    function add_host(array $hosts) {
        // appel de la fonction de recherche de l´hote 
        // pour éviter d´ajouter un hôte dèjà existant
        $this->host_search($hosts['host_name'], $hosts['address']);
        if(!$this->host_exist) {
             static$i=0;
              //$this->o_host = array(); initialisé par le constructeur
              $this->o_host[$i] = $hosts;
              $i++;
         } else {
              echo "<br/><font color='#FF0000'>this hostname: " 
                      . $hostname
                      . " or this IP: " 
                      . $ip . " exist already...</font><br/>";
         }
    }

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tes données doivent etre mise quelque part, en session par exemple.
    A chaque soumission du formulaire, tu perds tout, y compris tes objets.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Par défaut
    quelle serai la meilleur option ? Passer par l´utilisation des sessions ou bien des cookies ?

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Par défaut
    Ca dépends si tu dois garder tes variables seulement durant une session (ouverture à fermeture du navigateur) ou plus (plusieurs jours, mois, ans).
    La session est plus pratique mais le temps de mémorisation est plus court. Le cookie créé un petit fichier sur le client...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de Base via un formulaire
    Par alejandro27 dans le forum Modélisation
    Réponses: 8
    Dernier message: 15/04/2011, 19h03
  2. Création d'un objet via formulaire
    Par Shin0bi182 dans le forum Java EE
    Réponses: 0
    Dernier message: 26/03/2011, 20h03
  3. Réponses: 2
    Dernier message: 03/03/2011, 19h49
  4. Réponses: 1
    Dernier message: 19/11/2007, 20h27
  5. création d'alias via le fichier metabase.bin
    Par Sandrine75 dans le forum Windows
    Réponses: 7
    Dernier message: 23/09/2003, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo