Formulaire methode GET et résultat du fichier PHP [Résolu]

Signaler
Messages postés
78
Date d'inscription
jeudi 19 mars 2020
Statut
Membre
Dernière intervention
7 février 2021
-
Messages postés
78
Date d'inscription
jeudi 19 mars 2020
Statut
Membre
Dernière intervention
7 février 2021
-
Bonjour,
J'ai fait un formulaire GET avec un boutton "submit" vers un fichier PHP.
Le traitement du PHP a l'air de bien se passer , mais je ne sais pas exploiter le résultat dans le Java Script, pour actualiser ma page web.

Quelle est la bonne technique?

Ci dessous mon code:


<!--  ******   FORMULAIRE 1: SELECTION OUTIL A MODIFIER  ******  -->    
    <form id='idFormModifier1' action="modifier1.php"  method="get"
     target="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
          <div class = legendeM >
              <p id = 'legendeM1'>Indiquer n° ordre ou réference magasin</p>
              <!--  ******   CHOIX NUMERO ORDRE    ******  --> 
              <div class="classNumIdM">
                <label id='idLblNumIdM' For='idInputNumIdM'>N° ORDRE: </label>
                <input id = "idInputNumIdM"  name = "IdM" onchange = "blockRefMag" 
                 type = "number"  min = "100001" max = "102000" placeholder = 'Numéro Ordre: '>      
              </div>
              <!--  ******   CHOIX NUMERO MAGASIN    ******  --> 
              <div class="classNumMagM">
                <label id='idLblRefMagM' For='idInputRefMagM'>REF MAGASIN</label>
                <input id = "idInputRefMagM"  name = "refMagM" onchange = "blockNumId" 
                 type = "number"  step = "1" min = "0" placeholder = 'Référence magasin: '>      
              </div>
               <!--  BOUTON VALIDER RECHERCHE  --> 
                <button id = "idboutonRechercheModif" class = 'classboutonRechercheModif'
                 type = "submit">CHOIX</button>
                <p class="error">UNE ENTREE EST DEMANDEE</p>  
          </div>
    </form>


Le PHP:


<?php
header("Content-Type: application/json; charset=UTF-8");

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//--------------------------------------------------------------------------//
// fonctions diverses...
//--------------------------------------------------------------------------//
$entreeErr = $errIdM =  $errRefMagM = 0;
if (empty($_GET["IdM"]) && empty($_GET["refMagM"])){
    $entreeErr = "UNE ENTREE EST DEMANDEE";
  };

if (!filter_input(INPUT_GET, "IdM", FILTER_VALIDATE_INT,
    array("options" => array("min_range"=>100001, "max_range"=>102000))) === false){
    $errIdM = ("IdM NON VALIDE");
    };
if (!filter_input(INPUT_GET, "refMagM", FILTER_VALIDATE_INT)){
    $errRefMagM = ("refMag NON VALIDE");
    };

//--------------------------------------------------------------------------//
// Variables ..
//--------------------------------------------------------------------------//
$VM = $VM0 = $VM1= "";   
$VM0 = $_GET["IdM"];                                  
$VM1 = $_GET["refMagM"];

if ($VM0==""){
    $VM = $VM1;
    $condition = "REF_MAG";
    }else{$VM = $VM0;
    $condition = "id";
    };
//echo $VM ;
$datas = array();
$datas[":IdM"] = $VM0;
$datas[":refMag"] = $VM1;

//--------------------------------------------------------------------------//
//connexion à la bdd
//--------------------------------------------------------------------------//
require_once "cnxbdd.php";
        
//--------------------------------------------------------------------------//
//  REQUETE                                       
//--------------------------------------------------------------------------//

$sql = 'SELECT id FROM cutting_tools_01
        WHERE NOT ' .$condition .' = ' .$VM;

try{             
	$requete = $connexion->prepare($sql); // A corriger en fonction du contenu de ton fichier cnxbdd.php  
	$requete->execute($datas);                                                                    
	$resultatM1 = $requete->fetchAll(PDO::FETCH_ASSOC);      
}catch(PDOException $e){
	echo 'ECHEC  : ' .$e->getMessage();
}

print_r($resultatM1);




Configuration: Windows / Firefox 75.0

3 réponses

Messages postés
31599
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 mars 2021
3 298
Bonjour,

Le fichier qui contient ton formulaire se nomme comment ?

Tu parles également de javascript..... mais tu ne nous le montres pas ??!
Si ton but est de faire comme dans ta question précédente... c'est de l'ajax qui était utilisé.... pas un submit !
Et donc.. en gros.. tu as juste à coder de la même façon que dans ta question précédente.



Au passage .... dans le traitement de ton formulaire.. ta requête est mal écrite et ta variable $data est fausse !
if ($VM0==""){
    $VM = $VM1;
    $condition = ":REF_MAG";
} else {
     $VM = $VM0;
    $condition = ":id";
};
//echo $VM ;
$datas = array(':'.$condition => $VM);



$sql = 'SELECT id FROM cutting_tools_01
        WHERE NOT  ' .$condition .' =  :'.$condition ;


Cordialement,
Jordane
Messages postés
78
Date d'inscription
jeudi 19 mars 2020
Statut
Membre
Dernière intervention
7 février 2021

En fait, j'aurai pu faire comme avant certes vu que le principe se ressemble, mais je voulais savoir si on peux utiliser la technique du GET/Submit pour faire le même genre de chose. En essayant cette voie je me retrouve dans un cul de sac en sortie de PHP.
Le fichier qui contient le formulaire se nomme modification.php

Merci pour la correction.
JC
Messages postés
31599
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 mars 2021
3 298
Tu peux faire le submit sur le même fichier que celui qui contient ton formulaire
pour ça, tu mets le "action" à vide
 <form id='idFormModifier1' action=""  method="get">


et tu mets ton code PHP dans ce même fichier ( avant le HTML .. c'est plus propre et c'est le conseil que tu trouves dans les liens que je t'avais donné : https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code )

De là, tu peux utiliser ta variable $resultatM1 dans ton JS
 var  resultatM1 = '<?php echo !empty($resultatM1) ? json_encode($resultatM1) : "" ;?>';

pour l'utiliser il te faudra faire comme dans ta question précédente.. avec du parse json et une boucle.
Messages postés
78
Date d'inscription
jeudi 19 mars 2020
Statut
Membre
Dernière intervention
7 février 2021

Et oui, maintenant que tu le dit... :-)
Merci.
Bonne nuit.
JC