Formulaire, BDD, et tableaux: recupération de données [Résolu]

Messages postés
46
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2007
- - Dernière réponse : cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
- 9 août 2006 à 15:50
Bonjour les gens

Je vais essayer d'etre claire...

Je dois réaliser un tableau récapitulatif d'une liste d'enregistrements de ma BDD (jusque la rien de méchant), donc en php je me connecte a ma base, je recuperes tout ce qu'il me faut dans un array, je renvoye le tout.

Mais je dois pouvoir modifier ces enregistrements... Pas de pbm, je fais un form avec un joli "foreach"! (c'est deja pas mal tout ça)

Sauf que je dois aussi pouvoir ajouter de nouvelles lignes... et tant qu'a faire en ajouter plusieurs!!!!
Et surtout qu'a l'ajout d'une nouvelle ligne, je ne perde pas ce qui a été saisi au préalable dans les autres s'il me vient l'envie soudaine d'en ajouter encore une...

Cependant je ne dois pas enregistrer en BDD tant que n'a pas été cliqué l'image de submit "enregistrer"... Et si je peux eviter de recharger à chaque nouvelle ligne...

La solution se trouve en JavaScript... SAUF que je ne connais pas un brin javascript, alors que dire de son utilisation avec PHP!(que je ne connais que guere plus...)

Siouplé si vous pouvez me filer un coup de pouces, ne serait-ce qu'un lien, ça serai méga top!

Merci bocoup bocoup!
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
46
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2007
3
Merci
Haaaalaaaaa laaaaaaa... vu qu'en ce bas monde on ne peut pas (toujours) compter sur le soutient de nos congénères... (sic) Je suis quand même parvenue à une ébauche de solution. En tout cas en ce qui concerne le JavaScript.
(bient que le php s'insère relativement naturellement pour ce qui est de l'affichage de variables ou de generation de code HTML, l'insertion d'appels à des fonctions php me posent encore souci ).

Je remerçie les trois autres collègues qui m'ont apporté des réponses plus constructives que "problème "pas nouveau" et pas "compliqué"
a savoir astyax & eyeburner.

Voici le code (version light), il n'y à qua copier dans le bloc notes, enregistrer sous monNom.html et ouvrir dans l'explorateur: Voila un beau tableau, avec ajout de ligne sans perte de saisies, sans rechargement ;-)

Je n'ai pas commenté, n'hésitez pas a me mailer si vous comprennez pas quelque chose.
Dès que je gère nickel avec le php je vous pond un tuto.

<html>
    <head>
    </head>
       
        <script language="JavaScript">
            function ajoutLigne(){
                var tableau = document.getElementById("tableau");
                var ligne = tableau.getElementsByTagName("tr").length - 1;
               
                in1 = "<td>"+ligne+"</td>";
                in2 = "<td>Votre nom</td>";
                in3 = "<td>Votre prenom</td>";
               
                var c = tableau.insertRow(tableau.rows.length);
                c.innerHTML = in1+in2+in3;
            }
        </script>
                    ----

                Numero,
                Nom,
                Prenom,
           
       

        [javascript:ajoutLigne() Cliquez ici pour ajouter une ligne]
   

Alors c'est qui la meilleure héhé

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ufufy
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
bonjour,
>>Sauf que je dois aussi pouvoir ajouter de nouvelles lignes...
problème "pas nouveau", nombreuses questions/réponses à ce sujet.
et ajouter des lignes à quoi ? à <table> ? à <select> ? ...
cordialement   Bul   
Site
Commenter la réponse de cs_bultez
Messages postés
46
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2007
0
Merci
certes le pbm n'est pas nouveau, c'est l'ensemble du truc chose qui m'ennuie, je ne vois pas comment organiser tout ca avec des langages que je ne maitrise pas, voire que je ne connais pas!

alors pour l'ajout des lignes, je précise:

imaginons une table Employés avec ID (masqué), nom, prenom (champs texte), statut salarial (liste déroulante: lien avec table statuts pro...) et une case a cocher pour un tinyint genre "activé" oui/non)

Dans une page de visualisation, je me connecte a ma BDD, je recupére les tuples dans un array (dim2 monArray[Id][Champs] => valeur)

J'affiche le tout avec
  foreach blabla {
    ----

        monArray[Id][Champ1],
       monArray[Id][Champ2],
       ...
    }

En dessous, un bouton modifier qui envoie sur le meme tableau, version formulaire (donc on ajoute juste un form et quelques input)
et 2 bouttons: un submit et un ajouter...
Le submit OK, mais le ajouter... Il ajoute un <tr> avec les input qui vont avec...

Premier soucis: on ne peux pas avoir 2 input type img dans un meme formulaire (sauf erreur de ma part)
2° souci, on doit pouvoir ajouter autant de lignes que l'on veux, sans recharger la page, et en conservant, bien sur mes tuples, mais aussi ce qui peux avoir été saisi dans les lignes d'ajout. Le tout sans enregistrer en base.
L'enregistrement se faisant uniquement sur le submit.

Sans demander une réponse toute faite (j'oserai pas) j'aimerai bien quelques indices sur comment agencer le HTML, le PHP et le JavaScript pour obtenir quelque chose de potable!!!

J'avoue avoir trouvé  pas mal de sujet qui traitent une partie  de mon pbm, mais jamais  l'ensemble! ajouter des lignes OK, récuperer les  données OK... soumettre  OK. Mais tout en même temps!!!! J'avoue je suis dépassée!!!!

THX!!!!
Commenter la réponse de ufufy
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
>>Premier souci : on ne peux pas avoir 2 input type img dans un meme formulaire
bien sûr que si. tester : ça baigne... heureusement.



>>2° souci..
ajout de lignes dans un tableau, pas "compliqué" coté
   javascript, donc pas de rechargement de la page
   puisque pas d'appel au php avant submit

   ( j'ai mis par exemple un script "traitement sur les tableaux"
      qui montre ça. et <humour>même si c'est le meilleur</humour>
      il en existe d'autres )

>>ajouter des lignes OK, récuperer les  données OK... soumettre  OK.
plus de problème alors.
résoudre la logique de la chose, pas le code qui est une conséquence.



cordialement   Bul   
Site
Commenter la réponse de cs_bultez
Messages postés
46
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2007
0
Merci
>>

plus de problème alors.

J'aurai pas posté si je n'avais plus de problemes...

C'est fou le nombre de gens qui on un souci, à qui personne ne réponds, sous pretexte que c'est déja abordé alors que d'autres sur des truc naze on plein de réponse (ben oui plus de personnes qui connaissent)

De meme c'est fou comme les choses paraissent tres faciles lorsqu'on c les faire. Je t'apprendrai le tricot anglais, tu verra c'est facile je l'ai fait.

Oui c'est fou aussi ca le nombre de gens qui "ont fait" mais qui pourtant n'en disent pas plus.




>>résoudre la logique de la chose, pas le code qui est une conséquence.
Trouver le sens de la pelote, pas l'aiguille qui est un instrument.
Je t'assure que cela veux dire quelque chose.

Sur ce je vais essayer de trouver par mes propres moyen ce


script "traitement sur les tableaux" puisqu'il n'y a pas de liens. mais de toute façon


il en existe d'autres.

Je n'ai tout simplement pas su trouver ceux qui traitent de l'insertion de lignes dans un tableau HTML généré en PHP avec requete sur BDD sans rechargement de la page, en javascript donc. En sachant que le tout doit faire un update et un insert en meme temps...

Je crois bien qu'une fois de plus je ne pourrai cliquer ce foutu bouton réponse acceptée que dans mon propre post...

Merci quand même, une fois de plus j'apprends qu'on est jamais mieux servi que par soi-même, on à au moins l'avantage de se sentir moins bête.





>>ajouter des lignes OK, récuperer les  données OK... soumettre  OK.
Je le redis :




j'aimerai bien quelques indices sur comment agencer le HTML, le PHP et le JavaScrip

t.

Que celui qui à toujours codé sans bug me lance la première pierre...
Commenter la réponse de ufufy
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
 












>>J'aurai pas posté si je n'avais plus de problemes...

quoique...
 je cite : ajouter des lignes OK, récuperer les  données OK... soumettre  OK.

>>C'est fou le nombre de gens qui on un souci, à qui personne ne réponds
pas sur ce site en tout cas,
moi, ça dépend de la disponibilité du questionneur.
s'il n'est pas prêt à faire un effort, a donner des billes...
je ne peux rien pour lui.

>>puisqu'il n'y a pas de liens
un petit effort ! ( je t'en parlais juste au dessus ! )
1° il existe une fonction recherche, très bien faite.
2° si on clique sur le nom ou l'avatar de quelqu'un
   on voit toutes ses sources.

>>Je crois bien qu'une fois de plus je ne pourrai cliquer
donc ce n'est pas la 1ère fois qu'on ne te répond pas
 comme tu le souhaites ?
 la faute aux 'répondeurs" tu crois ?
 tous, sur tous les forums, sont disponibles,
   à l'écoute, prêts à aider, à aiguiller...
   sinon, on ne serait pas là.

>>quelques indices sur comment agencer le HTML, le PHP et le JavaScript.
beaucoup trop vague... comment répondre :
il faut relire les bases.

    javascript et php, sont 2 langages différents,
    ils ne tournent pas sur la même machine,
    et pas en même temps.
    javascript se déroule sur la machine client,
    php sur le serveur.
    php "génère" du html, javascript ... et l'envoie vers le client.
    l'utilisateur voit une page html, clique (par exemple) sur
    un bouton et l'action associée [ javascript ou html ] peut
    appeller du code php, peut-être celui qui l'a généré .
    si ça c'est compris, ajax permet depuis le javascript
    d'appeler du php qui retournera la réponse dans une
    variable JavaScript.

>>Que celui qui à toujours codé sans bug me lance la première pierre...
   je crois comprendre que ce n'était pas
   un bug qui te géne, mais un problème de logique.

cordialement   Bul   
Site
Commenter la réponse de cs_bultez
Messages postés
46
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2007
0
Merci
ajouter des lignes OK, récuperer les  données OK... soumettre  OK.
je répetes, c les 3 en meme temps que je vois pas.

Donc certes c pas



un bug qui me géne, mais un problème de logique.





>>quelques indices sur comment agencer le HTML, le PHP et le JavaScript.
beaucoup trop vague... comment répondre :
Dans le cadre de mon formulaire, ce n'est tout de meme pas si vague. Il me semble bien avoir détaillé le fonctionnement...




donc ce n'est pas la 1ère fois qu'on ne te répond pas
 comme tu le souhaites ?
En effet, ce n'est pas la première fois que je tombe sur quelqu'un qui ne peut mieu faire que de me répondre de chercher (autant s'abstenir). Fort heureusement, j'ai eu également de nombreux echanges tres constructifs, qui me laissent toujours croire en la pertinence d'un post.

Par ailleurs, il ne faut pas se croire "répondeur" en opposition aux "questionneur", c'est bien prétentieux de s'affirmer seulement "répondeur", en ce qui me concerne j'aide quand je le peux, j'aime bien sur en retour avoir un coup de pouce lorsque j'en ai besoin.

Je m'en vais retourner à ma conception, puisque visiblement je ne parviens pas à expliciter mon souci.

Bien cordialement
Commenter la réponse de ufufy
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
à que ciao alors   Bul   
Site
Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
>>Alors c'est qui la meilleure


oh... c'est toi !
et je m'incline bien bas...
et tant mieux si ça baigne.

je vais quand même insister, grossièrement ?,
une petite recherche dans les codes de ce site,
aurait donné des solutions ( meilleures !!! )

et ça c'est pour ajouter une ligne ?
je pensais qu'il n'y avais pas de souci ?
je te recite ? ajouter des lignes OK, récuperer les  données OK... soumettre  OK.

mais je suis beubeu de naissance,
   et je n'ai sûrement rien compris,
   t'es trop forte pour moi...

cordialement   Bul   
Site
Commenter la réponse de cs_bultez
Messages postés
46
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2007
0
Merci
Je te sens vexé là? tu souhaite vraiment qu'on regle les comptes sur un forum public? Ou aurais tu oublié les règles de bonnes conduite???

Ce n'est pas parceque tu est un développeur expérimenté que tu peut te permettre de prendre de haut ce qui débutent, ou qui cherchent simplement à faire un peu de code pour s'amuser.

L'idée d'un forum, il me semble, c'est l'entraide, sans se juger.

Si tu estimais ma question trop "bas de gamme" pour toi tu n'avait qu'a passer ton chemin.

une petite recherche dans les codes de ce site,
aurait donné des solutions
J'ai recherché, et pas seulement sur ce site, et je n'ai rien trouvé qui m'aide à comprendre d'avatange, c'est par d'autre biais que j'ai pigé le code que j'ai pondu. Car je ne me contente pas de copier bêtement les sources des autres.
( meilleures !!! ) je n'ai jamais dit que je cherchais la performance.

Alors c'est qui la meilleure

désolé mais un peu d'autosatisfaction lorsqu'on parvient à reussir quelque chose qui nous bloque ca fait de mal,
un peu d'humour non plus cela ne fait pas de mal.

et ça c'est pour ajouter une ligne ?
oui monsieur, c'est ce que cela fait.
je pensais qu'il n'y avais pas de souci ?
en effet il n'y en a plus.

Si tu tiens vraiment à avoir le dernier mot, je t'en prie, poste une réponse vachement constructive pour un forum javascript.
Document.write(j'ai le dernier mot, je suis content)
Personellement, je ne prendrai plus la peine de te répondre sur un sujet qui ne concerne que ton égo.

Au plaisir...
Commenter la réponse de ufufy
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
pas pour avoir le dernier mot,
et tu 


n'as pas lu :
je t'ai félicité,
j'ai dis que tu étais la meilleure,
que tu étais trop forte pour moi,
que je n'avais sûrement pas été 
   capable de me hausser à ton niveau 
   pour comprendre ta question,
   tu me le pardonneras j'espère.
bonne continuation   Bul   
Site
Commenter la réponse de cs_bultez