Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme formulaire Type image

11 réponses
Avatar
Xavier
Bonjour

Désolé si ça n'est pas le bon forum, et si tel est le cas, merci de
m'indiquer où chercher...

Bon. Voilà mon problème. Si quelqu'un pouvait m'enlever cette épine du pied,
je le remercie par avance.

J'ai un formulaire qui permet (en principe) de chercher des livres dans une
base de données.
Parmi les critères de choix, on peut indiquer l'auteur, et l'éditeur.
Bon, mais comme je vais avoir des millions d'auteurs et d'éditeurs, plutôt
que de les rentrer dans un menu déroulant, j'aimerais mettre des pictos du
genre "sélectionner un éditeur", "sélectionner un auteur". Ensuite, on va
chercher un éditeur, ou un auteur, sur d'autres pages, et quand le choix est
effectué, on est rebasculé sur la page de recherche des livres.

3 solutions :

1) Faire des liens tout bêtes derrière ces liens.
Problème : les données déjà rentrées dans le formulaire (ex : le titre, la
date, etc.) seront perdues quand l'internaute reviendra sur la page de
recherche des livres.

2) Faire des INPUT TYPE=submit
<INPUT TYPE=submit value='Editeur' name='Redirection'>
<INPUT TYPE=submit value='Auteur' name='Redirection'>
Et pour le bonton permettant d'afficher le résultat
<INPUT TYPE=submit value='AfficheResultat' name='Redirection'>
Ensuite, on récupère la valeur de $_POST["'Redirection"], et on est aiguillé
là où il faut.
Problème, les boutons 'submit', c'est moche...

3) Faire des INPUT TYPE=image
<INPUT TYPE=image value='Editeur' name='Redirection'>
etc.
Problème, ça ne marche pas.
Sur la page suivante, un truc du genre :

if ($_POST["'Redirection"]=='Auteur')
{
"Garde en mémoire les données du formulaire et
Va sur la page de recherche des auteurs" (écrit en vraies instructions
bien sûr)
}

... ne marche pas. Je n'arrive pas à récupérer le nom, ou la valeur d'un
input type image.

Quelqu'un aurait-il une solution pour utiliser des 'type image'?

Merci

10 réponses

1 2
Avatar
Christophe Meresse
Xavier a écrit :

3) Faire des INPUT TYPE=image
<INPUT TYPE=image value='Editeur' name='Redirection'>
etc.
Probl�me, �a ne marche pas.
Sur la page suivante, un truc du genre :

if ($_POST["'Redirection"]=='Auteur')
{
"Garde en m�moire les donn�es du formulaire et
Va sur la page de recherche des auteurs" (�crit en vraies instructions
bien s�r)
}

... ne marche pas. Je n'arrive pas � r�cup�rer le nom, ou la valeur d'un
input type image.

Quelqu'un aurait-il une solution pour utiliser des 'type image'?



Normalement tu peux utliser des <input type="image"> de la même
maniere qu'un <input type="submit"> en faisant par exemple <input
type="image" onclick="javascript: this.form.submit();"> (this.form
pas testé, à voir si c'est pas document.form ou je ne sais trop quoi)

Regarde du coté de javascript fonction openwindow et puis aussi
window.opener (qui est la fenetre qui à fait le openwindow) pour
remplir le champ auteur avec le retour de ta recherche d'auteur dans
cette fenetre popup...

Christophe
Avatar
Mickaël Wolff
Christophe Meresse a écrit :
Normalement tu peux utliser des <input type="image"> de la même
maniere qu'un <input type="submit"> en faisant par exemple <input
type="image" onclick="javascript: this.form.submit();"> (this.form
pas testé, à voir si c'est pas document.form ou je ne sais trop quoi)



Quel est l'intérêt d'avoir alors des boutons image s'ils ont le même
effet qu'un bête submit ?

Regarde du coté de javascript fonction openwindow et puis aussi
window.opener (qui est la fenetre qui à fait le openwindow) pour
remplir le champ auteur avec le retour de ta recherche d'auteur dans
cette fenetre popup...



Tu es au courant que les popups furent immolées en place publique ? ;)

Bon, je vais répondre à Xavier...
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
Mickael Wolff
XPost + Fu2

Xavier a écrit :

Désolé si ça n'est pas le bon forum, et si tel est le cas, merci de
m'indiquer où chercher...



Ça dépend de quoi on parle, mais c'est vrai que
<news:fr.comp.infosystemes.www.auteurs> serait plus approprié au début.

Parmi les critères de choix, on peut indiquer l'auteur, et l'éditeur.
Bon, mais comme je vais avoir des millions d'auteurs et d'éditeurs, plutôt
que de les rentrer dans un menu déroulant, j'aimerais mettre des pictos du
genre "sélectionner un éditeur", "sélectionner un auteur". Ensuite, on va
chercher un éditeur, ou un auteur, sur d'autres pages, et quand le choix est
effectué, on est rebasculé sur la page de recherche des livres.



Ce que je ferais, c'est implémenter une arborescence.

3 solutions :

1) Faire des liens tout bêtes derrière ces liens.
Problème : les données déjà rentrées dans le formulaire (ex : le titre, la
date, etc.) seront perdues quand l'internaute reviendra sur la page de
recherche des livres.



L'information ne sera pas nécessairement perdue. Ça dépend comment tu
gères la donnée saisie. Vu que ce sera une recherche, le mieux sera de
toute façon de faite un formulaire utilisant la méthode get. Il suffira
de faire en sorte que les liens de sélection soient du genre :

?q=Albert%20Dupon&realisateur=Albert%20Dupontel

Mais je ne vois pas l'intérêt de conserver la requête dans ce cas...

2) Faire des INPUT TYPE=submit
<INPUT TYPE=submit value='Editeur' name='Redirection'>
<INPUT TYPE=submit value='Auteur' name='Redirection'>
Et pour le bonton permettant d'afficher le résultat
<INPUT TYPE=submit value='AfficheResultat' name='Redirection'>
Ensuite, on récupère la valeur de $_POST["'Redirection"], et on est aiguillé
là où il faut.
Problème, les boutons 'submit', c'est moche...



Mais non, c'est pas moche. On peut même leur appliquer des styles si
vraiment le style par défaut ne te plaît pas :) Le bon forum pour ça est
<news:fr.comp.infosystemes.www.auteurs>.


3) Faire des INPUT TYPE=image
<INPUT TYPE=image value='Editeur' name='Redirection'>
etc.
Problème, ça ne marche pas.




if ($_POST["'Redirection"]=='Auteur')



Au fait, dans ton exemple tu as une apostrophe malheureuse qui traîne.

... ne marche pas. Je n'arrive pas à récupérer le nom, ou la valeur d'un
input type image.



Je pense que tu fais face à un bogue de MSIE. En effet, la valeur d'un
input[@type='image'] n'est pas transmise au serveur par le navigateur.
Il faut contourner. La seule solution pour contourner ce bogue est
d'utiliser un javascript qui créerait un champs input[@type='hidden'],
avec le même nom que le bouton image.
Par exemple :

<script type='text/javascript>
function input_image_click()
{
var e = this.form.createElement("input") ;
e.name = this.name ;
e.value = this.value ;
e.type = 'hidden' ;

this.form.appendChild(e) ;
}

</script>

<form ...>

<input type='image'
onclick='input_image_click() ; return true ;'
value='Albert Dupontel'
src='albert-dupontel.jpeg'
alt='Albert Dupontel' />
</form>

Pas testé, je n'ai pas de MSIE sous la main. Mais bon, c'est du
Javascript en plus, et on est pas sur le bon forum pour en parler :-D En
tout cas, ce n'est pas un problème de PHP. C'est un problème de
découpage de ton application, et de contournement de bogue :)

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
Xavier
"Christophe Meresse" a écrit dans le message
de news:
Xavier a écrit :

3) Faire des INPUT TYPE=image
<INPUT TYPE=image value='Editeur' name='Redirection'>
etc.
Probl?me, ?a ne marche pas.
Sur la page suivante, un truc du genre :

if ($_POST["'Redirection"]=='Auteur')
{
"Garde en m?moire les donn?es du formulaire et
Va sur la page de recherche des auteurs" (?crit en vraies
instructions
bien s?r)
}

... ne marche pas. Je n'arrive pas ? r?cup?rer le nom, ou la valeur d'un
input type image.

Quelqu'un aurait-il une solution pour utiliser des 'type image'?



Normalement tu peux utliser des <input type="image"> de la même
maniere qu'un <input type="submit"> en faisant par exemple <input
type="image" onclick="javascript: this.form.submit();"> (this.form
pas testé, à voir si c'est pas document.form ou je ne sais trop quoi)



Merci pour la réponse. J'avais vu sur la toile des trucs à base de
'onclick', mais sauf erreur de ma part, le formulaire est envoyé, sans qu'on
sache sur quelle image on a cliqué, alors qu'avec des bontons 'submit', on
peut récupérer le nom ou la valeur du bouton.
De plus, j'aimerais éviter le JS, à cause de tous les internautes qui le
désactivent.
Merci quand même. je ne vais pas pouvoir travailler là-dessus avant une
bonne quinzaine de jours, mais tout conseil sera le bienvenu quand je
remettrai les mains dans le cambouis.
A+

Xavier


Regarde du coté de javascript fonction openwindow et puis aussi
window.opener (qui est la fenetre qui à fait le openwindow) pour
remplir le champ auteur avec le retour de ta recherche d'auteur dans
cette fenetre popup...

Christophe


Avatar
Christophe Meresse
On 26 juin, 09:23, Mickaël Wolff wrote:

  Quel est l'intérêt d'avoir alors des boutons image s'ils ont le même
effet qu'un bête submit ?



Le look du bouton...
Mais j'ai une autre question: A quoi servent les bouton type image ?
Personnellement je les utilise jamais, je fais juste des <img
onclick="...">.

  Tu es au courant que les popups furent immolées en place publique ? ;)



Ah non, je savais pour les frame mais pas pour les popups. Ceci dit ça
ne m'étonne pas :)
Je parlais de cette solution parce que Xavier me semblait vouloir
s'orienter vers ça mais je fais tout pour l'éviter en faisant
apparaitre des parties de ma page en display:none ou en utilisant
Ajax.

Christophe
Avatar
unbewusst.sein
Christophe Meresse wrote:

Mais j'ai une autre question: A quoi servent les bouton type image ?



ils retournent la position où la souris a cliqué sur l'image du bouton :

j'ai un bouton-image :
<input type="image" src="button_create_rep/button_hue_0_to_360.png"
name="hue" />

et avec php, je retrouve la position, en x, de l'endroit où
l'utilisateur a cliqué :

$hue=((int)$_POST['hue_x'])-16;

ce qui, dans ce cas me donne un angle compris entre 0 et 360 °

même chose pour y
--
Une Bévue
Avatar
Christophe Meresse
On 27 juin, 08:36, (Une Bev
ue) wrote:
> Mais j'ai une autre question: A quoi servent les bouton type image ?

ils retournent la position où la souris a cliqué sur l'image du bouton :

j'ai un bouton-image :
<input type="image" src="button_create_rep/button_hue_0_to_360.png"
name="hue" />

et avec php, je retrouve la position, en x, de l'endroit où
l'utilisateur a cliqué :

    $hue=((int)$_POST['hue_x'])-16;



Ca alors ! Excellent =)
Merci beaucoup.
Avatar
unbewusst.sein
Christophe Meresse wrote:

Ca alors ! Excellent =)



un exemple :
http://thoraval.yvon.free.fr/PHP/button_create.php
mais bon, ça marche pas encore chez free, en local ca roule
les versions php ne sont pas les même 5 chez moi et 4 chez free..

et bien sûr le $_SERVER['DOCUMENT_ROOT'] n'est pas le même non +

c'est le bouton couleurs "arc en ciel" qui devrait retourner l'angle de
hue voulu pour créer un bouton de la couleur choisie.

j'ai piqué cette exemple chez Marc LYinage
http://www.entropy.ch/software/macosx/php/
voire sous "Examples" mais la version avec hue n'y est +...
--
Une Bévue
Avatar
Dominique Ottello
(Une Bev ue) écrivait :

mais bon, ça marche pas encore chez free, en local ca roule
les versions php ne sont pas les même 5 chez moi et 4 chez free..



Bonjour,

Pour « forcer » php version 5 chez Free, dans un fichier .htaccess situé
à la racine du site mettre :

<ifDefine Free>
PHP 1
</ifDefine>

Ça ne pose pas de problème en local, tout du moins sous Windows et avec
Wampserver.
--
Il vaut mieux ignorer où l'on est, et savoir qu'on l'ignore, que de se
croire avec confiance où l'on n'est pas. Jean Dominique Cassini.
Technologie aéronautique - http://ottello.net - Les anciens de Vilgénis
Avatar
unbewusst.sein
Dominique Ottello wrote:

Pour « forcer » php version 5 chez Free, dans un fichier .htaccess situé
à la racine du site mettre :

<ifDefine Free>
PHP 1
</ifDefine>

Ça ne pose pas de problème en local, tout du moins sous Windows et avec
Wampserver.



OK, merci beaucoup pour l'info.
mais, c'est pas nécessairement qu'un pb de version php, plutôt
d'extension-module php ???
--
Une Bévue
1 2