Utilisation fonction php dans un formulaire [résolu]

Eléphanteau du PHP | 20 Messages

10 mars 2010, 21:09

Bonjour,

Je suis en train de créer un formulaire à l'intérieur d'un album zenphoto.
Il faudrait que je puisse récupérer et transférer via le formulaire le nom de la photo affichée.

J'arrive à afficher ce nom grâce à la fonction suivante de zenphoto :
<?php printImageTitle(true); ?>
Et cela me convient tout à fait.

Ce que je n'arrive pas à faire, c'est à à transférer cette valeur (méthode post)
J'ai essayé avec un truc du genre :
<input type="text" name="photo" value="<?php $photo = printImageTitle(true); ?>" />
Mais ça ne fonctionne pas comme je voudrais, cela m'affiche dans la zone de saisie (dont je n'ai pas besoin) avec un "<span class=" dedans, puis le nom de l'image en dehors de la zone de saisie. Et le transfert ne marche pas.

Comment pourrai-je transférer cette valeur lors du "submit" du formulaire ?
Merci.
Modifié en dernier par pled le 11 mars 2010, 22:58, modifié 1 fois.

Eléphanteau du PHP | 31 Messages

10 mars 2010, 21:12

Bonjour,

Au lieu d'utiliser le type "text" pour ton input, tu peux utiliser le type "hidden".

La valeur sera passée et le champ ne sera pas affiché.

Eléphanteau du PHP | 20 Messages

10 mars 2010, 23:09

merci,
j'ai essayé, mais à cause du "<span class=" dans la sone de saisie (en type text), si j'utilise hidden, alors j'ai "photo_1 " /" qui s'affiche sur le formulaire.
Si je comprend bien, le retour de la fonction s'affiche bien toute seule, mais comporte une information css (class) ?

Puisque j'arrive à l'afficher en l'utilisant toute seule, il doit y avoir un moyen en passant par une variable, non ? ou un truc du genre... mais je ne sais pas comment faire !

Eléphanteau du PHP | 31 Messages

10 mars 2010, 23:20

J'ai lu un peu trop vite ton message, désolé.

En effet, si la value contient du code HTML ça ne va pas bien fonctionner. Ce qu'il te fait c'est une fonction qui renvoi la valeur sans code HTML autour.

Soit tu dupliques la fonction printImageTitle pour en faire une qui renvoie juste le nom de l'image, soit tu extrais ce qui t'intéresse dans le retour de la fonction printImageTitle (avec une expression régulière ou un str_replace si c'est possible).

Ensuite tu peux utiliser le input hidden pour le passer à ton formulaire.

Eléphanteau du PHP | 20 Messages

10 mars 2010, 23:52

ok,
la première solution (dupliquer), ça me parait une bonne idée. Je vais essayer ça... sinon la seconde... mais ça m'a l'air plus compliqué ! ;-)
je verrai ça demain...

je te tiens au courant !

Eléphanteau du PHP | 20 Messages

11 mars 2010, 20:57

Ça marche ! mais en creusant un peu...

J'ai regardé la fonction printImageTitle(), bidouillé un peu (c'est tout ce que je sais faire !), mais sans succès.

Je me suis alors rappelé que Zenphoto fournissait des "quick reference guides", j'ai donc regardé celui listant les fonctions.
Et j' ai vu juste à côté de printImageTitle() une autre fonction getImageTitle() ...

La suite a été rapide :
<?php $photo = getImageTitle(true); ?>
<input type="hidden" name="photo" value=<?php echo $photo; ?> />

Et le nom de l'image est bien transmise par le formulaire...
Je garde toutefois la fonction printimagetitle() pour l'afficher dans le formulaire. Et c'est parfait pour ça.

Vraiment super, et merci pour ton aide et soutien Mercantos !

Eléphanteau du PHP | 31 Messages

11 mars 2010, 21:04

A ton service, bonne continuation.