J'ai réduit le code php au minimum (ou presque) pour avoir 1 page de test qui reproduise mon problème.
Il y a 2 listes déroulantes (Type et Marque) qui listent les types et les marques existants dans ma base de données (pas de problème de ce côté là)
Il y a également 2 boutons pour afficher 2 popup pour permettre d'ajouter un nouveau type ou une nouvelle marque.
Les 2 popup s'affichent bien correctement.
Mais la validation du popup ne fonctionne pas du tout pareil entre la 1ère et la 2e popup.
J'ai beau regarder le code caractère par caractère, je ne vois aucune différence de structure. (j'ai bien vérifié (avec notepad++) également que chaque balise se ferme bien comme il faut)
La 1ère popup retourne sur la page test.php en ajoutant automatiquement ?input-Type=test1 (et je ne comprends pas du tout pourquoi) (et au lieu d'aller sur la page bibliotheque-ajoute-type.php)
La 2e popup va bien sur la page bibliotheque-ajoute-marque.php
J'ai ensuite scindé le code ci-dessous en 2 pages :
- test1.php uniquement pour le type (j'ai copié page.php et supprimé le code qui concernait les marques) : cette page continue de se comporter comme précédemment (logique) et reste sur test1.php?input-Type=test11 (au lieu d'aller sur la page bibliotheque-ajoute-type.php)
- et test2.php uniquement pour la marque (j'ai copié page.php et supprimé le code qui concernait les types) : cette page n'affiche plus bibliotheque-ajoute-marque.php comme avant (et comme souhaité) mais se comporte comme le 1er popup et affiche test2.php?input-Marque=test22
Je vous mets ci-dessous les codes, en espérant que vous pourrez m'expliquer ce qui cloche.
Code de test.php
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<!-- /Required meta tags -->
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<!-- /Bootstrap CSS -->
<!-- icons -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous">
<!-- /icons -->
<title>DéCoSIL 2.0</title>
</head>
<body id="page-top" data-spy="scroll" data-target=".navbar-custom">
<?php
require 'session.php';
if ($niveau>9)
{
try
{
require 'singleton_pdo.php';
$bdd = singleton_pdo::getBDD();
}
catch (Exception $ex)
{
}
}
function option($value, $data)
{
return '<option value="'.$value.'">'.$data.'</option>';
}
?>
<div class="jumbotron jumbotron-fluid">
<div class="container">
<center>
<h1>DéCoSIL 2.0</h1>
<p></p>
<h2>Ajouter un composant</h2>
</center>
</div>
</div>
<div class="container">
<form>
<div class="form-group row">
<div class="col-4 col-offset-2 col-sm-4 col-sm-offset-2 col-md-4 col-md-offset-2 col-lg-4 col-lg-offset-2 col-xl-4 col-xl-offset-2">
<label for="input-Nom">Nom</label>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<input class="form-control" type="text" id="input-Nom">
</div>
</div>
<div class="form-group row">
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<label for="select-Type">Type</label>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<select class="custom-select" id="select-Type">
<option selected>Sélectionner un Type...</option>
<?php
$req = "SELECT * FROM TypesComposant Order By Type";
$result = $bdd->query($req);
$donnees = $result->fetchAll();
foreach ($donnees as $donnee)
{
echo option($donnee['NuméroAuto'],$donnee['Type']);
}
?>
</select>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModalType">Ajouter un nouveau Type</button>
</div>
</div>
<div class="form-group row">
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<label for="select-Marque">Marque</label>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<select class="custom-select" id="select-Marque">
<option selected>Sélectionner une Marque...</option>
<?php
$req = "SELECT * FROM Marques Order By Marque";
$result = $bdd->query($req);
$donnees = $result->fetchAll();
foreach ($donnees as $donnee)
{
echo option($donnee['NuméroAuto'],$donnee['Marque']);
}
?>
</select>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModalMarque">Ajouter une nouvelle Marque</button>
</div>
</div>
<div class="modal" id="myModalType">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Ajouter un nouveau Type</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<div class="container">
<form role="form" action="bibliotheque-ajoute-type.php" method="post">
<div class="form-group row">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<label for="input-Type">Type</label>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<input class="form-control" type="text" id="input-Type" name="input-Type"/>
</div>
</div>
<div class="row" style="text-align: center;">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button type="submit" id="button-valider-Type" class="btn btn-success">Valider</button>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button id="button-annuler-Type" class="btn btn-danger" data-dismiss="modal">Annuler</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="modal" id="myModalMarque">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Ajouter une nouvelle Marque</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<div class="container">
<form role="form" action="bibliotheque-ajoute-marque.php" method="post">
<div class="form-group row">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<label for="input-Marque">Marque</label>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<input class="form-control" type="text" id="input-Marque" name="input-Marque"/>
</div>
</div>
<div class="row" style="text-align: center;">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button type="submit" id="button-valider-Marque" class="btn btn-success">Valider</button>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button id="button-annuler-Marque" class="btn btn-danger" data-dismiss="modal">Annuler</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</body>
<!-- Core JavaScript Files -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<!-- /Core JavaScript Files -->
<!-- https://datatables.net -->
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<!-- /https://datatables.net -->
</html>
Code de test1.php
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<!-- /Required meta tags -->
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<!-- /Bootstrap CSS -->
<!-- icons -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous">
<!-- /icons -->
<title>DéCoSIL 2.0</title>
</head>
<body id="page-top" data-spy="scroll" data-target=".navbar-custom">
<?php
require 'session.php';
if ($niveau>9)
{
try
{
require 'singleton_pdo.php';
$bdd = singleton_pdo::getBDD();
}
catch (Exception $ex)
{
}
}
function option($value, $data)
{
return '<option value="'.$value.'">'.$data.'</option>';
}
?>
<div class="jumbotron jumbotron-fluid">
<div class="container">
<center>
<h1>DéCoSIL 2.0</h1>
<p></p>
<h2>Ajouter un composant</h2>
</center>
</div>
</div>
<div class="container">
<form>
<div class="form-group row">
<div class="col-4 col-offset-2 col-sm-4 col-sm-offset-2 col-md-4 col-md-offset-2 col-lg-4 col-lg-offset-2 col-xl-4 col-xl-offset-2">
<label for="form-control">Nom</label>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<input class="form-control" type="text" id="input-Nom">
</div>
</div>
<div class="form-group row">
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<label for="select-Type">Type</label>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<select class="custom-select" id="select-Type">
<option selected>Sélectionner un Type...</option>
<?php
$req = "SELECT * FROM TypesComposant Order By Type";
$result = $bdd->query($req);
$donnees = $result->fetchAll();
foreach ($donnees as $donnee)
{
echo option($donnee['NuméroAuto'],$donnee['Type']);
}
?>
</select>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModalType">Ajouter un nouveau Type</button>
</div>
</div>
<div class="modal" id="myModalType">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Ajouter un nouveau Type</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<div class="container">
<form role="form" action="bibliotheque-ajoute-type.php" method="post">
<div class="form-group row">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<label for="input-Type">Type</label>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<input class="form-control" type="text" id="input-Type" name="input-Type"/>
</div>
</div>
<div class="row" style="text-align: center;">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button type="submit" id="button-valider-Type" class="btn btn-success">Valider</button>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button id="button-annuler-Type" class="btn btn-danger" data-dismiss="modal">Annuler</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</body>
<!-- Core JavaScript Files -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<!-- /Core JavaScript Files -->
<!-- https://datatables.net -->
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<!-- /https://datatables.net -->
</html>
Code de test2.php
<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<!-- /Required meta tags -->
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<!-- /Bootstrap CSS -->
<!-- icons -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous">
<!-- /icons -->
<title>DéCoSIL 2.0</title>
</head>
<body id="page-top" data-spy="scroll" data-target=".navbar-custom">
<?php
require 'session.php';
if ($niveau>9)
{
try
{
require 'singleton_pdo.php';
$bdd = singleton_pdo::getBDD();
}
catch (Exception $ex)
{
}
}
function option($value, $data)
{
return '<option value="'.$value.'">'.$data.'</option>';
}
?>
<div class="jumbotron jumbotron-fluid">
<div class="container">
<center>
<h1>DéCoSIL 2.0</h1>
<p></p>
<h2>Ajouter un composant</h2>
</center>
</div>
</div>
<div class="container">
<form>
<div class="form-group row">
<div class="col-4 col-offset-2 col-sm-4 col-sm-offset-2 col-md-4 col-md-offset-2 col-lg-4 col-lg-offset-2 col-xl-4 col-xl-offset-2">
<label for="form-control">Nom</label>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<input class="form-control" type="text" id="input-Nom">
</div>
</div>
<div class="form-group row">
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<label for="select-Marque">Marque</label>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<select class="custom-select" id="select-Marque">
<option selected>Sélectionner une Marque...</option>
<?php
$req = "SELECT * FROM Marques Order By Marque";
$result = $bdd->query($req);
$donnees = $result->fetchAll();
foreach ($donnees as $donnee)
{
echo option($donnee['NuméroAuto'],$donnee['Marque']);
}
?>
</select>
</div>
<div class="col-4 col-sm-4 col-md-4 col-lg-4 col-xl-4">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModalMarque">Ajouter une nouvelle Marque</button>
</div>
</div>
<div class="modal" id="myModalMarque">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Ajouter une nouvelle Marque</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<div class="container">
<form role="form" action="bibliotheque-ajoute-marque.php" method="post">
<div class="form-group row">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<label for="input-Marque">Marque</label>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<input class="form-control" type="text" id="input-Marque" name="input-Marque"/>
</div>
</div>
<div class="row" style="text-align: center;">
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button type="submit" id="button-valider-Marque" class="btn btn-success">Valider</button>
</div>
<div class="col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6">
<button id="button-annuler-Marque" class="btn btn-danger" data-dismiss="modal">Annuler</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</body>
<!-- Core JavaScript Files -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<!-- /Core JavaScript Files -->
<!-- https://datatables.net -->
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<!-- /https://datatables.net -->
</html>