Retourner sur la page du formulaire [Résolu]

Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
- 30 avril 2018 à 12:46 - Dernière réponse :
Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
- 30 avril 2018 à 20:06
Bonjour, j'insère des données a travers un formulaire , après l'insertion ca m'envoi vers une page vide qui contient le message données Insérées , moi je veux que le message box s'affiche sur la même page du formulaire . comment faire ?
voici la page du formulaire :
<html>
    <head>
        <!-- importer le fichier de style -->
        <link rel="stylesheet" href="Style/style1.css" media="screen" type="text/css" />
		<title>Ajouter un Scanner </title>
		<body>
        <div id="container">
            <!-- zone de connexion -->
            
            <form   action ="insert.php" method="post">
                <h1>Ajout d'un Scanner</h1>
                
                <label><b>Catégorie</b></label>
                <input type="text" placeholder="Entrer la catégorie du Scanner" name="fcategorie" required>

                <label><b>Ville</b></label>
                <input type="text" placeholder="Entrer la ville" name="fville" required>
				
				<label><b>Longitude</b></label>
                <input type="text" placeholder="Entrer la longitude" name="flong" required>
				
				<label><b>Latitude</b></label>
                <input type="text" placeholder="Entrer la latitude" name="flat" required>
				
				<label><b>Description</b></label>
                <input type="text" placeholder="Description" name="fdesc" required>

                <input type="submit" id='submit' value='Insérer' >

            </form>
        </div>
		 
				
    </body>
    </head>


et voici la page pour insérer:
<html>
<body>
 
 
<?php
$con = @mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
 
mysql_select_db("mapbdd", $con);
$sql="INSERT INTO markers (marker_categorie, marker_ville,marker_longitude,marker_latitude,marker_text,marker_actif)
				VALUES
				('$_POST[fcategorie]','$_POST[fville]','$_POST[flong]','$_POST[flat]','$_POST[fdesc]','Oui')";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo '<script type="text/javascript">alert("Données Insérées")</script>' ;
 
mysql_close($con)
?>
</body>
</html>


Merci d'avance
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
23313
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 novembre 2018
Modifié par jordane45 le 30/04/2018 à 20:12
1
Merci
Bonjour,

Avant tout..... l'extension mysql est OBSOLETE.
Il faut désormais utiliser mysqli ou PDO.
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Ensuite, concernant ta demande, deux possibilités.
- Soit tu places ton code PHP dans le même fichier que ton formulaire (et dans ce cas, tu laisses l'attribut "action" à vide) afin de rester sur la même page une fois le code php exécuté
- Soit, dans ton second fichier, tu fais simplement une redirection à l'aide de l'instruction
header('location:tapage.php');


Moi je prendrai le choix 1

Au passage... tes balises sont mal fermées/placées dans ton code...
Par exemple... que vient faire la balise </head> APRES le <body> ??
Donc, ton code, en PDO et correctement formaté, reviendrait )à ça:

Fichier de connexion à la bdd à placer dans un fichier à part
pour ne pas avoir à le recopier dans chacune de tes pages
<?php
//fichier : cnxBdd.php

try{
  $bdd =new PDO('mysql:host=localhost;dbname=mapbdd; charset=utf8', 'root', '');
  // Activation des erreurs PDO
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
  die('Erreur : ' . $e->getMessage());
} 
?> 

Ton fichier devient ensuite:
<?php
//activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);


//on inclus le fichier de connexion à la bdd
require_once 'cnxBdd.php';

//on récupère PROPREMENT les variables AVANT de les utiliser
$fcategorie = !empty($_POST['fcategorie']) ? $_POST['fcategorie'] : NULL;
$fville = !empty($_POST['fville']) ? $_POST['fville'] : NULL;
$flong = !empty($_POST['flong']) ? $_POST['flong'] : NULL;
$flat = !empty($_POST['flat']) ? $_POST['flat'] : NULL;
$fdesc = !empty($_POST['fdesc']) ? $_POST['fdesc'] : NULL;

//on traite les variables du formulaire:
if($fcategorie && $fville && $flong && $flat && $fdesc){
 
  $sql="INSERT INTO markers (
                  marker_categorie
                , marker_ville
                ,marker_longitude
                ,marker_latitude
                ,marker_text
                ,marker_actif
               )
                VALUES (
                 :marker_categorie 
                ,:marker_ville 
                ,:marker_longituden
                ,:marker_latitude
                ,:marker_text
                ,:marker_actif
              )";
   $datas = array(':marker_categorie'=>$fcategorie
                 , ':marker_ville'=>$fville
                 ,':marker_longitude'=>$flong
                 ,':marker_latitude'=>$flat
                 ,':marker_text'=>$fdesc
                 ,':marker_actif'=>'Oui'
                 );
  //Execution de la requete
  try{
    $requete = $bdd -> prepare($sql) ;
    $res = $requete->execute($datas) ;
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
     print_r($datas);
  }
  
  if($res){
    echo '<script type="text/javascript">alert("Données Insérées")</script>'
  }
}

?>
<!DOCTYPE html>
<html>
 <head>
  <!-- importer le fichier de style -->
  <link rel="stylesheet" href="Style/style1.css" media="screen" type="text/css" />
    <title>Ajouter un Scanner </title>
 </head>
 <body>
    <div id="container">
      <!-- zone de connexion -->
   <form   action ="" method="post">
        <h1>Ajout d'un Scanner</h1>
    <label><b>Catégorie</b></label>
        <input type="text" placeholder="Entrer la catégorie du Scanner" name="fcategorie" required>
        <label><b>Ville</b></label>
        <input type="text" placeholder="Entrer la ville" name="fville" required>
        <label><b>Longitude</b></label>
        <input type="text" placeholder="Entrer la longitude" name="flong" required>
        <label><b>Latitude</b></label>
        <input type="text" placeholder="Entrer la latitude" name="flat" required>
    <label><b>Description</b></label>
        <input type="text" placeholder="Description" name="fdesc" required>
        <input type="submit" id='submit' value='Insérer' >
      </form>
    </div>
  </body>
 </html> 
 



Je t'invite, avant de poursuivre ton développement, à lire (et à appliquer) ceci:
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et ça :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Bien entendu, ce que j'ai fait en PDO, tu peux le refaire en mysqli si vraiment tu le souhaites....



Cordialement, 
Jordane                                                                 

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Messages postés
123
Date d'inscription
vendredi 24 mai 2013
Dernière intervention
12 octobre 2018
- 30 avril 2018 à 20:06
D'accord merci beaucoup pour tous tes conseils
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.