[RESOLU] Garder un echo d'affiché après submit

Eléphanteau du PHP | 13 Messages

28 févr. 2017, 15:35

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 févr. 2017, 17:14

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,'" />';
@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

28 févr. 2017, 17:44

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mars 2017, 10:58

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.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

01 mars 2017, 14:04

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mars 2017, 16:18

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 ?

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

02 mars 2017, 13:55

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 mars 2017, 16:24

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" />';
}
?>

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

07 mars 2017, 09:48

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 :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 mars 2017, 10:05

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 ;)

@+
Il en faut peu pour être heureux ......