Changee une variable grace au option de select et les envoyee avec un input [Résolu]

Signaler
Messages postés
4
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
4 juin 2021
-
Messages postés
4
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
4 juin 2021
-
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

Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
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"
Messages postés
4
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
4 juin 2021

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
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553 >
Messages postés
4
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
4 juin 2021

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...
Messages postés
4
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
4 juin 2021
>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021

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" }
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
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>

Messages postés
4
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
4 juin 2021

Merci de votre aide, vous m'avez beaucoup aidez pour mon projet merci jordane45