Formulaire BDD et rafraichissement de la page
Bonjour.
J'ai un projet qui entre par le fichier : index.php
puis au travers d'une barre de navigation charge la div contenu issu du fichier contenuFormulaire.php
qui lui même charge 2 articles au travers des fichiers choixSaisie.php et multisports.php
En cliquant sur un lien du premier <article id="corps11">, on modifie le second <article id="corps12"> en chargeant le fichier reqAfficheMultisports.php
Ce dernier affiche un tableau représentant les éléments d'une table sous forme de tableau.
Ces données peuvent être modifiées, supprimées ou créées à partir de ce tableau et de cette page.
Je ne sais pas si c'est plus clair, je me le suis schématisé comme suit :
charge la div
Code:
<div id="contenu">contenuFormulaire.php<\div>
qui charge les 2 articles :
Code:
1 2
| <article id="corps11">choixSaisie.php<\aticle>
<article id="corps121">multisports.php<\article> |
et choixSaisie charge
Code:
<article id="corps12">reqAfficheMultisports.php<\article>
selon la proposition de :
Citation:
Envoyé par
01001111
Déjà si tu veux utiliser des variables en $_GET pour modifier le contenu de la page, en faisant les includes correspondants il faut les sépcifier au préalable dans ton menu:
Code:
1 2 3 4 5 6 7 8
| <nav id="navig">
<ul>
<li><a href='index.php?p=accueil'>Accueil</a></li>
<li><a href='index.php?p=formulaires''>Formulaires</a></li>
<li><a href='index.php?p=resultats'>Résultats</a></li>
<li><a href='index.php?p=parcours'>Parcours</a></li>
</ul>
</nav> |
index.php ça suffit, c'est pas beau mais je t'expliquerai éventuellement ensuite comment le masquer avec mod_rewrite et un fichier .htaccess, si tu es sous apache.
ensuite je te conseille de retenir les variables de page courante en session:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
<?php
session_start(); // cette commande devra être appelée dans le fichier incluant à savoir index.php
// toujours dans index.php
if (isset($_GET['p'])) {
$_SESSION['page'] = $_GET['p'];
} else {
$_SESSION['page'] = 'accueil';
}
?>
/*
le reste du code index.php jusqu'à:
*/
<div id="contenu">
<?php
switch($_SESSION['page']) {
case "accueil":
require_once ('/Vue/contenuIndex.php' );
break;
case "formulaires":
require_once ('/Vue/contenuFormulaire.php' );
break;
case "resultats":
require_once ('/Vue/contenuResultats.php' );
break;
case "parcours":
require_once ('/Vue/contenuParcours.php' );
break;
}
?>
</div>
// puis la fin du fichier index.php avec le footer, le scripts (mieux à la fin parait-il) et ce que tu veux |
Donc mon fichier reqAfficheMultisports.php fait son boulot :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?php
require_once '../CONFIG/constantes.php';
require_once MYSQL2;
//print_r($_POST);
// Fabrication de la requête SELECT
$ma_requete = "SELECT * FROM multisports ORDER BY id_multisports; ";
// Connexion au serveur mysqli et selection de la base "ma_base"
$db_link = connect();
// Envoi de la requête
$rTables=mysqli_query($db_link,$ma_requete) or die(mysqli_error($db_link));
//affichage des données
echo '<table>';
echo '<tr><td>id_multisports</td><td>Multisport</td><td></td></tr>';
while($Valeur = mysqli_fetch_assoc($rTables))
{
echo '<tr><td><a class="idModif" data-id="'.$Valeur['id_multisports'].'" data-valeur="'.$Valeur['nom_multisports'].'" href="#">'.$Valeur['id_multisports'].'</a></td>
<td>'.$Valeur['nom_multisports'].'</td>
<td><a href="./BDD/reqCRUD.php?action=D&table=multi&id='.$Valeur['id_multisports'].'">Supprimer</a></td></tr>';
// on affiche les informations de l'enregistrement en cours
}
echo '</table>';
echo '
<form id="idform" name="formulaire" method="post" action="./BDD/reqCRUD.php?action=C">
<label id="msport" >Coucou</label>
<input name="multi" type="text" id="multi" value="">
<input type="submit" name="Submit" value="Envoyer">
</form>
';
echo "\n";
echo ' <div id="retourCreate"></div>';
// Déconnexion
mysqli_close($db_link);
?>
<script src="./Contenu/CRUD.js"></script> |
et reqCRUD aussi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| <?php
require_once '../CONFIG/constantes.php';
//require_once 'form_parcours.php';
require_once MYSQL2;
global $table;
global $champ;
global $valeur;
if (!isset($_GET['action'])){
echo "erreur fonctionnelle, veuillez contacter l'administrateur : problème d'url" ;
//header('Location: ../Vue/formulaire_saisies.php');
//exit();
}else{
if ($_GET['action']=='D'){
//function delete()
if (!isset($_GET['table'])){
echo "erreur fonctionnelle : pas de table selectionnée";
}
elseif (trim($_GET['table'])=='multi'){
$table = "multisports";
$valeur = trim($_GET['id']);
$champ = "id_multisports";
}
elseif (trim($_GET['table'])=='velo'){
$table = "velos";
$valeur = trim($_GET['id']);
$champ = "id_velos";
}
else {
echo "erreur fonctionnelle, veuillez contacter l'administrateur." ;
}
//connexion
$db_link = connect();
// suupression
$req="DELETE FROM `".$table."` WHERE ((`".$champ."` = '".$valeur."'));";
//echo $req;
// Envoi de la requête
mysqli_query($db_link,$req) or die(mysqli_error($db_link));
print_r($req);
// Déconnexion
disconnect();
}
if ($_GET['action']=='U'){
//function update()
if (isset($_POST['multi'])){
$table = "multisports";
$champ = "nom_multisports";
$valeur = trim($_POST['multi']);
$id = $_GET['id'];
}
elseif (isset($_POST['velo'])){
$table = "velos";
$champ = "nom_velos";
$valeur = trim($_POST['velo']);
$id = $_GET['id'];
}
else {
echo "erreur fonctionnelle, veuillez contacter l'administrateur." ;
}
//connexion
$db_link = connect();
// FIN Récupération des champs sorties
$req="UPDATE `".$table."` SET `nom_multisports` = '".$valeur."' WHERE `id_multisports` = ".$id.";";
echo $req."<br>";
// Envoi de la requête
mysqli_query($db_link,$req) or die(mysqli_error($db_link));
print_r($req);
// Déconnexion
disconnect();
}
if ($_GET['action']=='C'){
//function create()
if (isset($_POST['multi'])){
$table = "multisports";
$champ = "nom_multisports";
$valeur = trim($_POST['multi']);
}
elseif (isset($_POST['velo'])){
$table = "velos";
$champ = "nom_velos";
$valeur = trim($_POST['velo']);
}
else {
echo "erreur fonctionnelle, veuillez contacter l'administrateur." ;
}
//connexion
$db_link = connect();
// FIN Récupération des champs sorties
$req="INSERT INTO `".$table."` (`".$champ."`) VALUES ('".$valeur."');";
// echo $req;
// Envoi de la requête
mysqli_query($db_link,$req) or die(mysqli_error($db_link));
//print_r($req);
// Déconnexion
disconnect();
}
header('Location: F:\Projet\Serveur\data\localweb\Projet\Controleur\multisports.php');
exit();
}?> |
Ce que je n'arrive pas à faire c'est rafraichir la page modifiée, le header('location:...') me ramène au même endroit mais sans la modif, il faut que je rappelle la page multisports.php pour voir ma mise à jour.
Merci de votre aide, j'ai été un peu long, mais je n'arrive pas à expliquer mieux.