Changee une variable grace au option de select et les envoyee avec un input

Résolu/Fermé
firpic Messages postés 93 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 - 3 juin 2021 à 17:15
firpic Messages postés 93 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 - 4 juin 2021 à 07:49
Bonjour,

J'ai ce que fait par jordane45, j'ai essayer de mettre moi meme le code mais cela ne fonctionne, je ne comprend pas pourquoi, pourriez-vous m'aidez:

voici le code avant modification :
</html>
<?php
//lancer la session
require('../../ses.php');

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd :
require_once('../../configepi.php');

//récupération Propre des variables AVANT de les utiliser
$np = !empty($_POST['numero']) ?  $_POST['numero'] : 1;

if(isset($_POST['subP'])){
    $np--;
}

if(isset($_POST['subS'])){
  $np++;
}

// la variables ne peut pas allez en dessou de 1 et au dessus de'un certain nombre
if($np==0){
  $np = 1;
}
if($np==61){
  $np = 60;
}

//préparation de la requête et des variables
 $sql = "SELECT title, lien FROM `OnePiece` WHERE episode=:np ";
 $datas = array(':np'=>$np);

//Execution de la requete
try{
  $requete = $conn -> prepare($sql) ;
  $requete->execute($datas) ;
  
  $res=$requete->fetch();
  $titleR = $res['title'];
  $linkR = $res['lien'];
  
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <?php include('../lm1serie.php');  // je ne sais pas ce qu'il y a dans ce script... pas sur qu'il ai sa place ici ! ?>
</head>
<body style="background-color: #373939;">
  <?php 
  include('../et1serie.php');
  //include('navOnePiece.php');
  ?>
  <div class="vide">
    <h1>One Piece VF</h1>
      <div>
      <form action="https://streawer.000webhostapp.com/serie/OnePiece/OnePiece1.php" method="POST">
          <input type="hidden" value="<?php echo $np;?>" name="numero">
          <input type="submit" value="Précedent" name="subP" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
          <input type="submit" value="Suivant" name="subS" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
      </form>
          <?php
              echo $titleR;
              echo $linkR;
          ?>
      </div>
  </div>
  <?php include('../../footer.php'); ?>  
</body>
</html>


et voici ce que j 'ai rajouter a la ligne 24 :
if(isset($_POST['subSE'])){
  if(isset($_POST['selepi'])){
    $np = $_POST['selepi'];
  }
}


et a la ligne 69
<select name="selepi" id="selepi" style="background-color: #444444; color: #4DB98A; font-size: 20px; margin-bottom: 20px; margin-top: -50px;">
     <?php $nop = 1; while($nop<=60){ echo '<option value="'.$nop.'">'.$nop.'</option>'; $nop++; } ?> 
</select> <input type="submit" name="subSe" value="Aller a l'episode" style="font-size: 25px; background-color: #09816c; color: #4DB89A;"> <br>

2 réponses

jordane45 Messages postés 36846 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 janvier 2023 4 461
3 juin 2021 à 17:23
Merci de nous montrer le code complet avec tes modifs.

Car là.. on ne sait pas où tu as mis ton html
ni où tu as placé ton code php ...

Pour pouvoir comprendre où se trouve le souci.. il nous faut le code dans son "contexte"
0
firpic Messages postés 93 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1
Modifié le 3 juin 2021 à 17:33
donc voici le code complet avec mes modification:

<?php
//lancer la session
require('../../ses.php');

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd :
require_once('../../configepi.php');

//récupération Propre des variables AVANT de les utiliser
$np = !empty($_POST['numero']) ?  $_POST['numero'] : 1;

if(isset($_POST['subP'])){
    $np--;
}

if(isset($_POST['subS'])){
  $np++;
}
if(isset($_POST['subSE'])){
  if(isset($_POST['selepi'])){
    $np = $_POST['selepi'];
  }
}

// la variables ne peut pas allez en dessou de 1 et au dessus de'un certain nombre
if($np==0){
  $np = 1;
}
if($np==61){
  $np = 60;
}

//préparation de la requête et des variables
 $sql = "SELECT title, lien FROM `OnePiece` WHERE episode=:np ";
 $datas = array(':np'=>$np);

//Execution de la requete
try{
  $requete = $conn -> prepare($sql) ;
  $requete->execute($datas) ;
  
  $res=$requete->fetch();
  $titleR = $res['title'];
  $linkR = $res['lien'];
  
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <?php include('../lm1serie.php');  // je ne sais pas ce qu'il y a dans ce script... pas sur qu'il ai sa place ici ! ?>
</head>
<body style="background-color: #373939;">
  <?php 
  include('../et1serie.php');
  //include('navOnePiece.php');
  ?>
  <div class="vide">
    <h1>One Piece VF</h1>
      <div>
      <form action="https://streawer.000webhostapp.com/serie/OnePiece/OnePiece1.php" method="POST">
          <input type="hidden" value="<?php echo $np;?>" name="numero">
          <select name="selepi" id="selepi" style="background-color: #444444; color: #4DB98A; font-size: 20px; margin-bottom: 20px; margin-top: -50px;">
            <?php $nop = 1; while($nop<=60){ echo '<option value="'.$nop.'">'.$nop.'</option>'; $nop++; } ?> 
          </select> <input type="submit" name="subSe" value="Aller a l'episode" style="font-size: 25px; background-color: #09816c; color: #4DB89A;"> <br>
          <input type="submit" value="Précedent" name="subP" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
          <input type="submit" value="Suivant" name="subS" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
      </form>
          <?php
              echo $titleR;
              echo $linkR;
          ?>
      </div>
  </div>
  <?php include('../../footer.php'); ?>  
</body>


Aucune erreur ne s'affiche quand la page est executer
0
jordane45 Messages postés 36846 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 janvier 2023 4 461 > firpic Messages postés 93 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022
Modifié le 3 juin 2021 à 20:10
as tu vérifié ce qu'envoyait ton formulaire ? ( en faisant un var_dump de $_POST ) par exemple.
et un var_dump de la variable $datas (avant le execute de la requête )
ça serait un bon début...
0
firpic Messages postés 93 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1 > jordane45 Messages postés 36846 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 janvier 2023
3 juin 2021 à 20:33
voila ce que me renvoie var_dump:
array(3) { ["numero"]=> string(1) "1" ["selepi"]=> string(1) "6" ["subSe"]=> string(17) "Aller a l'episode" } array(1) { [":np"]=> string(1) "1" }
0
jordane45 Messages postés 36846 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 janvier 2023 4 461
3 juin 2021 à 21:41
Attention à la façon d'écrire tes variables...
Tu as mis un E majuscule au niveau du isset de ton bouton.

<?php
//lancer la session
require('../../ses.php');

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd :
require_once('../../configepi.php');

//récupération Propre des variables AVANT de les utiliser
$np = !empty($_POST['numero']) ?  intval($_POST['numero']) : 1;
$selepi = !empty($_POST['selepi']) ? intval($_POST['selepi']) : NULL;

//Le temps des tests
echo "<br>POST <br>";
var_dump($_POST);
echo "<br>np :" . $np;
echo "<br>selepi :" . $selepi;

if(isset($_POST['subP'])){
  $np--;
}

if(isset($_POST['subS'])){
  $np++;
}

if(isset($_POST['subSe'])){ // L'erreur était ici !  subSE
    $np = $selepi;
  }
}

// la variables ne peut pas allez en dessou de 1 et au dessus de'un certain nombre
if($np=='0'){
  $np = 1;
}
if($np=='61'){
  $np = 60;
}

//préparation de la requête et des variables
 $sql = "SELECT title, lien FROM `OnePiece` WHERE episode=:np ";
 $datas = array(':np'=>$np);

//Execution de la requete
try{
  $requete = $conn -> prepare($sql) ;
  $requete->execute($datas) ;
  
  $res=$requete->fetch();
  $titleR = $res['title'];
  $linkR = $res['lien'];
  
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <?php include('../lm1serie.php');  // je ne sais pas ce qu'il y a dans ce script... pas sur qu'il ai sa place ici ! ?>
</head>
<body style="background-color: #373939;">
  <?php 
  include('../et1serie.php');
  //include('navOnePiece.php');
  ?>
  <div class="vide">
    <h1>One Piece VF</h1>
      <div>
      <form action="https://streawer.000webhostapp.com/serie/OnePiece/OnePiece1.php" method="POST">
          <input type="hidden" value="<?php echo $np;?>" name="numero">
          <select name="selepi" id="selepi" style="background-color: #444444; color: #4DB98A; font-size: 20px; margin-bottom: 20px; margin-top: -50px;">
            <?php 
              $nop = 1;
              while($nop<=60){ 
                echo '<option value="'.$nop.'">'.$nop.'</option>'; 
                $nop++; 
              } 
            ?> 
          </select> 
          <input type="submit" name="subSe" value="Aller a l'episode" style="font-size: 25px; background-color: #09816c; color: #4DB89A;"> <br>
          <input type="submit" value="Précedent" name="subP" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
          <input type="submit" value="Suivant" name="subS" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
      </form>
          <?php
              echo $titleR;
              echo $linkR;
          ?>
      </div>
  </div>
  <?php include('../../footer.php'); ?>  
</body>

0
firpic Messages postés 93 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1
4 juin 2021 à 07:49
Merci de votre aide, vous m'avez beaucoup aidez pour mon projet merci jordane45
0