|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() |
Bonjour,
Je vais être amené à faire quelque chose d'assez simple finalement, mais je ne vois pas trop comment m'y prendre. Il s'agit en fait de présenter des données extraits d'une table. Ca c'est OK, sous la forme d'un tableau. Cependant, j'aimerais mettre en face de chaque ligne une case à cocher de sorte de pouvoir ensuite éditer quelques champs de la ligne. Un peu à la manière de PhpMyAdmin. Là je ne voie pas comment procéder je ne suis pas très à l'aise avec les checkbox. Une fois les modifications faites, l'idéal étant de confirmer avec un résumé. Tout ceci doit utiliser le système de template smarty puisque j'insère ça dans une application existante qui l'utilise. Si vous pouviez me guider, et puis savoir si c'est faisable surtout. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() ![]() Inscription : octobre 2006 Messages : 128 ![]() |
Et bien tu rajoutes une colone à ton tableau.
Dans cette colone tu ajoutes une checkbox qui s'appele modifier_iddelentree. Ensuite pour la vérification et bien tu regardes à chaque fois si le modifier_iddelentree est coché. Si c'est le cas tu l'affiche. Sinon tu ne l'affiches pas. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() |
Oui. Mais il faut que les autres éléments de la ligne soient des objets de formulaire ou pas ?
Sinon dans le POST il n'y aura rien, en dehors des données du checkbox. Auquel cas, quel type d'objet de formulaire correspondrait à une sorte de label comme on en trouve en VB par exemple. Par ailleurs, existe-t-il un moyen optimisé de gérer les checkbox avec du PHP ? |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 364 ![]() |
Dans quel langage, tu es en train de réaliser ces actions ???
Les checkbox se font en HTML |
|
|
00
|
|
|
#5 | ||||
|
Membre chevronné
![]() ![]() Aurélien Développeur Web Inscription : avril 2006 Messages : 510 ![]() |
tu pourrais tester comme ça :
ta dernière colonne contient un formulaire réparti sur plusieurs lignes dans case de cette colonne, une checkbox et un champ hidden quand tu crées ton formulaire à partir de la lacture de ta base de données : Code :
dans ta page de traitement : Code :
j'l'ai fait vite fait, j'garantis rien |
||||
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Salut,
le plus simple c'est de donner directement les valeurs de clés primaires aux checkbox, et de les passer dans un tableau : Code :
<input type="checkbox" name="ids[]" value="<?php echo $enreg['id']; ?>"> Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() |
Oui je crois que je vais procéder comme ça, quitte à refaire une requête SQL.
Ce n'est pas simple puisqu'il y a tout le HTML qui est déporté à Smarty. Mais ça me semble jouable comme ça. Merci beaucoup. |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() |
Cela étant, du coups j'ai une autre problématique qui apparaît.
Comment récupérer les valeurs de l'ensemble de mes champs modifiés ? Est-ce qu'il est possible de nommer une textbox valeur[] et du coups d'avoir le même principe que la checkbox ? |
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Oui tu peux faire pareil, ex :
Code :
|
||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() |
Merci beaucoup. Je vais tester ça.
|
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() |
Ca fonctionne
Bon encore un ptit soucis, mais là ça devient plus fin lol. Une fois que j'ai validé les lignes que je veux modifier en cochant les cases. Je valide. L'action porte sur la même page, sauf que cette fois j'affiche bien les seuls éléments à modifier et j'utilise des textbox forcément. Supposons qu'il y ait 10 lignes à modifier. Par mégarde, la personne ne répond pas à une des conditions que j'ai fixé (chiffre inférieur à 0, caractère alphabétique...) pour une saisie (par faute de frappe par exemple), lorsque qu'elle va valider le formulaire là encore je fais appel à la même page, j'affiche l'erreur et je recharge les lignes à modifier. Le hic, c'est que je refait la requête, du coups on ne retrouve pas du tout les modifications effectuées par l'utilisateur auparavant. Autant pour une ligne ce n'est pas gênant, autant devoir rettaper tout sur 10 lignes pour un champs erroné ça devient embettant. Ma question est donc, comment puis-je procéder pour mettre dans ce cas les valeurs déja saisie dans les textbox au lieu de la requête. Sachant que j'utilise toujours la même page PHP pour les actions des formulaires. |
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() bioinfo Inscription : mai 2003 Messages : 385 ![]() |
Bonjour,
Tu stockes tout en session : A la validation du formulaire, avant de tester les erreurs du dois faire un truc du genre $var=$_POST['un_textearea'] Tu le stockes en session : $_session['textarea']=$var; et au moment du reaffichage echo '<textarea name="un_textarea">'.$_SESSION['textarea'].'</textarea>'; Ca marche aussi avec les tableaux... Bon courage, Sohnic
__________________
http://www.noctinfo.fr/ (\ _ /) (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant. (")-(") |
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Sinon il ne faut faire la requête que si le formulaire n'a pas été validé où "confirmUpdate" est le nom du submit.
Code :
|
||
|
|
00
|
|
|
#14 | ||
|
Invité régulier
![]() |
J'avais bien pensé aux sessions, sauf qu'avec Smarty et globalement toute l'application dans laquelle je m'incruste il y a déja des sessions et quand j'avais créé un jour une variable de session il m'a crié dessus en me disant qu'il y en avait déja... j'me suis pas attardé j'ai trouvé un autre moyen.
Du coups j'ai opté pour : Code :
|
||
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
En fait c'est pas un état c'est le nom du submit :
<input type="submit" name="confirmUpdate" value="Sauvegarder"> |
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() |
Ah oui pardon lol. J'avais mal compris. Je testerais ça pourrait alléger un peu.
Euh sinon question plus bête, j'ai imbriqué des if. Or, quand un est faux, il test celui d'après quand même et du coups si celui-ci est bon ça effectue l'instruction. Du coups c'est très très embettant dans le cadre d'un contrôle de saisie. J'me suis pas mal pris la tête, m'enfin c'était le soir, ça ira peut-être mieux demain. Mais si vous avez une idée, je suis preneur. Je dévis un peu du sujet, désolé. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com