Page 1 sur 1

Garder un echo d'affiché après submit

Posté : 28 févr. 2017, 15:35
par xarj
Bonjour,

je fais une appli web où il y a plusieurs boutons submit, chacun d'eux exécute une différente condition et selon le résultat, affiche une image.

Le problème que j'ai c'est que quand je clique sur une bouton, son image s'affiche correctement mais si je clique sur un deuxième bouton, l'image du premier bouton qui s'est affiché disparait.
J'aimerai que les images reste, jusque quand j'appuie de nouveau sur le bouton.

J'ai déjà essayé les sessions, mais je n'y arrive pas, je dois surement m'y prendre mal.
$_SESSION['submit'] = $_POST['submit'];

if(isset($_SESSION['submit'])){
echo "<img>";
}
Vous avez une idée comment je pourrais faire ? Merci.

Re: Garder un echo d'affiché après submit

Posté : 28 févr. 2017, 17:14
par moogli
salut,

c'est le nom du champs qu'il faut mettre en session.
si tu as un champs input qui s'appel toto tu met en session$_SESSION['toto'] = $_POST['toto']

ensuite il faut mixer post et session ;)
par exemple
<?php
$img = '';
if(!empty($_POST['lechampquivabien'])){
    $_SESSION['lechampquivabien'] = $_POST['lechampquivabien']
}
if(!empty($_SESSION['lechampquivabien'])){
    $img = $_SESSION['lechampquivabien'];
}
echo '<img src=",$img,'" />';
@+

Re: Garder un echo d'affiché après submit

Posté : 28 févr. 2017, 17:44
par xarj
Ca ne fonctionne pas, j'ai essayé de plusieurs façon, dont ça :
<?php
$img = '<img src="Vert.php" alt="servicefonctionnel">';
if(isset($_POST[$host])){
    $_SESSION[$host] = $_POST[$host];
}
if(isset($_SESSION[$host])){
    $img = $_SESSION[$host];

echo '<img src="'.$img.'" />';
}
?>
Aussi, ce n'est pas un input, mais un boutton submit. je sais pas si ça change quelque chose :p.

Re: Garder un echo d'affiché après submit

Posté : 01 mars 2017, 10:58
par moogli
ton code
- n'as pas de session_start()
- utilise une variable $host qui n'existe pas

c'est quoi le code du formulaire, parce que bon la valeur du bouton ce sera toujours la même (son texte).
as-tu vérifié ce que ton code affiche si tu vires les deux if ?
=>
<img src="<img src="Vert.php" alt="servicefonctionnel">" />

"ça ne marchera jamais !!" :)

sans plus d'info je ne peux pas t'aider (au mois le formulaire et savoir ce que tu en fais.

@+

Re: Garder un echo d'affiché après submit

Posté : 01 mars 2017, 14:04
par xarj
J'ai bien mis session start.

La valeur host existe.
foreach($list as $host){
echo '<input type="submit" name="'.$host.'" value="test"> <br>';
//ton code;
}
L'image apparaît bien mais toujours le même problème. Elle disparait lorsque j'appuie sur un autre bouton submit.

Re: Garder un echo d'affiché après submit

Posté : 01 mars 2017, 16:18
par moogli
montre le code complet sinon on s'en sort pas.
si tu as ce comportement c'est qu'il y a unetruc que tu ne fait pas correctement

pour la variable host elle n'existe pas dans de traitement du formulaire que tu as mis plus haut. ce code est censé être le foreach ?

@+

Re: Garder un echo d'affiché après submit

Posté : 02 mars 2017, 13:55
par xarj
Je ne peux pas montrer tout mon code il y a trop. Je l'ai un peu modifié, voilà la partie concernée :
<?php session_start(); 
$img = "Vert.php" ; ?>
<input type="submit" name="submit" value="test"> <br>';
<?php 
if(isset($_POST['submit'])){
    $_SESSION['submit'] = $_POST['submit'];
}
if(isset($_SESSION['submit'])){
    $img = $_SESSION['submit'];
echo '<img src="'.$img.'" />';
}
?>
Je ne sais pas pourquoi mais maintenant l'image ne s'affiche plus après avoir pressé le bouton, mais on voit bien le support de l'image, et celui-ci de se "multiplie pas".
Si j'enlève les 2 if, l'image s'affiche bien.

Enfaite ce que je voudrai c'est que à chaque fois que j'appuie sur le bouton submit, une nouvelle image "Vert.php" s'affiche, au lieu de toujours remplacer celle d'avant.

Merci.

Re: Garder un echo d'affiché après submit

Posté : 02 mars 2017, 16:24
par moogli
sort le echo du dernier if.

l'image s'affichera tout le temps. par contre la tant que tu n'a ps cliqué sur le bout c'est l'image "Vert.php' qui s'affiche ensuite c'est le contenu de$_POST['submit']. Donc en fait la chaîne "test" donc la balise image doit ressembler à <img src="test" />
et du coup l'image n'est pas trouvé.

je ne sais pas ce que ça doit afficher quand tu n'as pas appuyé sur le bouton mais si tu veux afficher une image "Vert.php" quand le bouton à été pressé au moins une fois
<?php 
if(isset($_POST['submit'])){
    $_SESSION['submit'] = true;
}
if(!empty($_SESSION['submit'])){
    echo '<img src="Vert.php" />';
}
?>

@+

Re: Garder un echo d'affiché après submit

Posté : 07 mars 2017, 09:48
par xarj
Re,

j'ai préféré stocker le lien de l'image dans une db. Plus facile et les SESSION ne pouvaient pas fonctionner puisque ce n'est pas sur le même poste :p

Merci quand même :)

Re: Garder un echo d'affiché après submit

Posté : 07 mars 2017, 10:05
par moogli
Re,

j'ai préféré stocker le lien de l'image dans une db. Plus facile et les SESSION ne pouvaient pas fonctionner puisque ce n'est pas sur le même poste :p

Merci quand même :)

ben si tu ne dit pas effectivement cela ne peux pas fonctionner ....

merci de cocher la p'tite case résolus en haut à gauche lorsque c'est le cas ;)

@+