Partage
  • Partager sur Facebook
  • Partager sur Twitter

formulaire: préremplir un champ avec conrenu bdd

    18 janvier 2018 à 18:39:51

    Bonsoir,

    j'ai un formulaire qui doit remplir un champ: type_produit - n°serie - statut

    je débute en en php et j'aimerais savoir si il est possible de préremplir le champ n°serie en fonction du champ type_produit ( qui propose un choix dans une liste déroulante ).

    Le but étant que j'ai dans ma table plusieurs "type_produit" et qu'il me préremplisse mon champ n°serie en fonction du type_produit.

    J'espère avoir été claire en tout cas,

    merci d'avance et bonne soirée

    • Partager sur Facebook
    • Partager sur Twitter
      18 janvier 2018 à 21:09:00

      Salut,

      Oui c'est possible de le faire mais en Javascript dans ce cas.

      • Partager sur Facebook
      • Partager sur Twitter
        19 janvier 2018 à 17:11:10

        ok, merci pour l'info; il est possible de déclencher une fonction php avec un event javascript ?

        comment lier les 2 dans ce cas ?

        • Partager sur Facebook
        • Partager sur Twitter
          19 janvier 2018 à 20:10:20

          coucou; oui je suis donc tombé sur AJAX en creusant et du coup j'y suis depuis 1 heure; est ce que cette méthose est encore d'actualité ? car le cours semble dater ?

          bonner soirée

          • Partager sur Facebook
          • Partager sur Twitter
            19 janvier 2018 à 20:29:11

            Je pense que tu n'a pas besoin de l'Ajax , vu que tu n'a pas besoin d'aller chercher des ressources et les charger dynamiquement.

            Si j'ai bien compris , tu as une liste déroulante avec plusieurs type de produits. Et tu veux que à chaque fois qu'on sélectionné une entrée de la liste que le champs n° de série se rempli d'après le type de produit sélectionné ?

            -
            Edité par mohzah 19 janvier 2018 à 20:29:45

            • Partager sur Facebook
            • Partager sur Twitter
              19 janvier 2018 à 20:41:43

              alors oui en quelques sortes: dans ma table, pour faire court, j'ai le champ produit et un champ n° de serie; une fct prend dans une autre table tous mes types de produits et l'inclu dans ma liste déroulante produit.

              dans ma seconde table j'écrit ce produit avec un n° de serie.

              J'aimerais que ce n° de serie soit prérempli en fonction du tye de produit.

              Je sais traiter tout ce qu'il faut en php sql; mais j'ai effectivement besoin de javascript je pense, car pour une fonction php j'aurais besoin de connaître le $_POST['produit'] sans envoyer le form.

              • Partager sur Facebook
              • Partager sur Twitter
                19 janvier 2018 à 20:53:42

                Ce que tu peux faire c'est récupérer la valeur du selectbox de tes types de produits en Javascript.
                Et l'envoyer en Ajax en POST vers ton script php.

                // Evenement lorsque qu'on select un autre choix dans la liste déroulante
                $('#id_de_ton_Selectbox').change(function() {
                	// on récupere la value de l'option séléctionné 
                	var produit = $("#id_de_ton_Selectbox option:selected").val(); 
                	//on lance l'appel ajax vers le script PHP
                	$.ajax({
                        url: "fichier.php",
                        type: "POST",
                        data: {produit:produit},
                        success: function (data) {
                           // Faire quelque chose quand l'appel Ajax s'est bien passé.
                        },
                        error: function(jqXHR, textStatus, errorThrown) {
                            console.log(textStatus, errorThrown);
                        }
                    });
                	
                });



                -
                Edité par mohzah 19 janvier 2018 à 21:00:34

                • Partager sur Facebook
                • Partager sur Twitter
                  20 janvier 2018 à 9:46:52

                  ok, merci pour ton aide.

                  Je vais essayer de comprendre çà et apprendre mieux l'ajax.

                  Bonne journée

                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 janvier 2018 à 16:11:09

                    re coucou, j'ai relu ce week end les cours javascript, pas eu le temps de m'étaler sur l'ajax cependant.

                    Dans le code que tu m'as gentiment partagé, je ne comprend pas vraiment tous les paramètres de data:

                    data: {produit:produit}

                    et j'avoue aussi, ne pas savoir ce que je peux mettre dans success ? est ce que je peux mettre ma fonction php ?

                    est ce que du coup  le POST['produit'] est accessible dans le fichier.php renseigné dans "url" ?

                    Merci d'avance et bon dimanche

                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 janvier 2018 à 18:41:16

                      je vais mettre mes codes, ca sera surement plus parlant:

                      la view:"new_prod.php"

                      <!DOCTYPE html>
                      
                      <html>
                          <head>
                              <meta charset="utf-8" />
                              <title>création produit</title>
                              <link rel="stylesheet" type="text/css" href="style.css">
                          </head>
                      
                          <body>
                              
                              <h1>Création d'une pièce</h1>
                      
                      
                              <div id="b_form_production">
                                  <form method="post" action="prod_unity.php" id="cadre_product">
                                      <script src="js/new_prod.js"></script>
                                      <select name="type" id="product_sel"  required>
                                          <option value="" defaut></option>
                                          <?php
                                          ref_prod_list(); 
                                          ?>
                                      </select>
                      
                                      <label for="serial">n° de série</label>
                                      <input type="text" value="<?php last_serial(); ?>" name="serial"/>
                                      <input type="submit" value="créer" name="submit" id="submit" />
                                  </form>
                      
                      
                              </div>
                              
                      
                          </body>
                      </html>

                       Mon model:"data_proces.php"

                      <?php
                      
                      function ref_prod_list(){
                      	global $bdd;
                      
                      	$req = $bdd->query('SELECT ref FROM product');
                      	while ($data = $req->fetch()){
                      		echo '<option value="' . $data['ref'] . '">' . $data['ref'] . '</option>' ;
                      	}
                      	
                      }
                      
                      function last_serial(){
                      	global $bdd;
                          
                          $product = $_POST['type'];
                      
                      	$req1 = $bdd->query('SELECT MAX(seriale) AS max_serial FROM stock ');
                      	while ($data = $req1->fetch()){
                      		echo $data['max_serial'];
                      	}
                      	
                      	$req1->closeCursor();
                      
                      
                      }

                      et du coup le JS(que tu m'as fourni et que j'ai rempli du mieux que je peux :))

                      "new_prod.js"

                      // Evenement lorsque qu'on select un autre choix dans la liste déroulante
                      $('#product_sel').change(function() {
                          // on récupere la value de l'option séléctionné
                          var type = $("#product_sel option:selected").val();
                          //on lance l'appel ajax vers le script PHP
                          $.ajax({
                              url: "data_proces.php",
                              type: "POST",
                              data: {type,type},
                              success: function(data){
                                  console.log(type);
                              },
                              error: function(jqXHR, textStatus, errorThrown) {
                                  console.log(textStatus, errorThrown);
                              }
                          });
                           
                      });






                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 janvier 2018 à 19:34:33

                        Enfait dans le "Data" tu mets les paramètres qui vont passer en post.

                        Quand je dis 

                        data: {type:type},

                        C'est pour dire qu'il y'aura une variable en POST nommé type. et je lui assigne la variable type initialiser plus haut. 
                        Si on renomme la variable ça serait plus clair pour toi je pense:

                        var type = $("#product_sel option:selected").val();
                            //on lance l'appel ajax vers le script PHP
                            $.ajax({
                                url: "data_proces.php",
                                type: "POST",
                                data: {type_post:type},
                                success: function(data){
                                    console.log(type);
                                },
                                error: function(jqXHR, textStatus, errorThrown) {
                                    console.log(textStatus, errorThrown);
                                }
                            });

                        Donc pour récupérer ce parametre en POST du coté le PHP :

                        $_POST['type_post']


                        Et dans ton succes tu fera le JS pour remplir les champs avec les données que ta renvoyer le PHP.
                        Attention: Une fois que tu fais l'appel vers le PHP ton script doit faire un echo json_encode($donnees) pour que ton appel Ajax puisse récuperer les données et dans le succes il faut faire un JsonParse() pour les re convertir en tableau JS et le manipuler.

                        -
                        Edité par mohzah 21 janvier 2018 à 19:36:26

                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 janvier 2018 à 19:49:33

                          ok merci beaucoup,

                          en ce qui concerne la gestion de l'event, il s'agit bien de jQuery ?

                           je suis en train de parcourir le cours jQuery pour régler un soucis que j'ai avec l'evenement en première ligne; car il ne marche pas de mon coté:

                          pour le tester dans un premier temps, j'ai fais:

                          $('#product_sel').change(function() {
                          alert('yoo');
                          });
                          

                          mais je n'arrive pas encore à déclancher l'evenement .

                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 janvier 2018 à 20:48:17

                            Il faut mettre l'event dans 

                            $( document ).ready(function() {
                                $('#product_sel').change(function() {
                                 alert('yoo');
                                });
                            });



                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 janvier 2018 à 23:08:05

                              je progresse, la gestion de l'event est ok; j'ai compris pour la variable passée en POST.

                              Cependant avec le code js:

                              $( document ).ready(function()  {
                                  $('#product_sel').change(function() {
                                  // on récupere la value de l'option séléctionné
                                var type = $("#product_sel option:selected").val();
                              
                                  //on lance l'appel ajax vers le script PHP
                                 $.ajax({
                                      url: "model/production/data_proces.php",
                                      type: "POST",
                                      data: {type:type},
                                      success: function(data){
                                          console.log(type);
                                      },
                                      error: function(jqXHR, textStatus, errorThrown) {
                                          console.log(textStatus, errorThrown);
                                      }
                                      });
                                  });
                              });

                               une erreur dit que ma variable "product = $_POST['type'];" de ma fonction php est indefinie.

                              j'ai essayer de bidouiller mon url dans tous les sens mais rien n'y fait je n'arrive pas à remplir ma variable



                              -
                              Edité par Drumlalane 21 janvier 2018 à 23:08:41

                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 janvier 2018 à 0:05:16

                                Hein , nul besoin de bidouiller l'url.. montre moi ton fichier data_process.php stp.

                                -
                                Edité par mohzah 22 janvier 2018 à 0:14:54

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  22 janvier 2018 à 18:30:49

                                  j'utilise l'architecture MVC, j'ai donc mon index qui inclu les portions de codes:

                                  <script src="view/production/js/jquery.js"></script>
                                  <script src="view/production/js/new_prod.js"></script>
                                  
                                  <?php
                                  session_start();
                                  
                                  require_once('model/production/data_proces.php');
                                  require_once('view/production/new_prod.php');

                                  mon data_process.php comprend la fonction que je veux utiliser: pour le moment je ne la fais pas encore intervenir la variable en POST, j'essaye juste de la récupérer avec succès, et c'est là que le message d'erreur php m'indique que $_POST['type'] est indefini. la fct est

                                  function last_serial(){
                                  	global $bdd;
                                      
                                      $product = $_POST['type'];
                                  
                                  	$req1 = $bdd->query('SELECT MAX(seriale) AS max_serial FROM stock ');
                                  	while ($data = $req1->fetch()){
                                  		echo $data['max_serial'];
                                  	}
                                  	
                                  	$req1->closeCursor();
                                  
                                  
                                  }

                                  -
                                  Edité par Drumlalane 22 janvier 2018 à 18:36:12

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    22 janvier 2018 à 19:00:31

                                    Ok ok, Mais en MVC tes url's sont du style : "http://siteweb.com/NomDuControlleur/NomDeFonction

                                    Dans ton cas si ta fonction "last_serial" se trouve dans le ControllerAdmin :

                                    http://siteweb.com/admin/last_serial

                                    Mais bon vue que tu fait juste des require_once() de tes fichiers php, j'en deduis que tu n'a pas ce système de routes qui génère les url's que j'ai cité au-dessus.

                                    Dans ce contexte tu ne pourra pas appeler tes fonctions via une URL.

                                    Ce que tu dois faire pour accéder à la variable POST "type":

                                    - Tu devras placer ton code en dehors de la fonction

                                    - Faire un isset de la variable POST "type" 

                                    if(isset($_POST['type']){
                                       $product = $_POST['type'];
                                       echo $product;
                                    
                                    }
                                    
                                    function last_serial(){
                                        global $bdd;
                                     
                                        $req1 = $bdd->query('SELECT MAX(seriale) AS max_serial FROM stock ');
                                        while ($data = $req1->fetch()){
                                            echo $data['max_serial'];
                                        }
                                         
                                        $req1->closeCursor();
                                     
                                     
                                    }



                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      22 janvier 2018 à 19:57:55

                                      Oui je me rend compte que je ne connais pas encore grand chose; cela veut donc dire que je ne peux pas utiliser de jquery / ajax ? comment charger mon POST en fonction d'un event du coup ?

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        22 janvier 2018 à 20:49:26

                                        salut, tu pour expliquer ça : "Le but étant que j'ai dans ma table plusieurs "type_produit" et qu'il me préremplisse mon champ n°serie en fonction du type_produit."

                                        un type produit n'a qu'un n°série ?

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          22 janvier 2018 à 21:20:41

                                          et bien j'ai un autr module en parralèle qui enregistre un type de produit: exemple, type: clavier; souris; ecran ...

                                          et que le module que je suis en train de faire pour le moment qui représente un stock insert 1 unité d'un type ( un écran par exemple ) et lui attribue un n° serie en fonction du dernier element "type". de ma base stock.

                                          chaque type à sa suite de n° de serie différente: dans mon exemple, j'ai un 0001 ecran , un 0001clavier etc.

                                          Le but etant de pré-remplir le ahmp  n° de serie en fct du type que je choisi dans mon select.

                                          D'autre part, je gere le coté php/SQL mais n'ai pratiquement pas de connaissance en jquery / ajax. Avec l'aide de mohzah, et le code qu'il m'a fourni, je peux gere l'evenement du select mais à cause de mes lacunes dans ces derniers languages, il me manque des notions élémentaires.

                                          -
                                          Edité par Drumlalane 22 janvier 2018 à 21:25:07

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            22 janvier 2018 à 21:49:04

                                            Pourtant tu as tout pour réussir ta manip'
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              22 janvier 2018 à 22:01:55

                                              ah c'est bon à savoir, le code js avec du jquery/ ajax est quand meme exploitable ? avec la transmission via url ?
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                22 janvier 2018 à 22:54:05

                                                Oui dans le isset que je t'ai envoyé plus loin tu fait ta requête et tu renvoi le résultat au code je en faisant un echo du resultat et dans la succès de l'Ajax tu fais le script jquery pour remplir le champ avec la réponse reçu. Tu y est presque
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  22 janvier 2018 à 23:16:56

                                                  Merci beaucoup; je surchauffe pour ce soir, je remprendrais demain :) je vais finir par y arriver lol

                                                  je pense que mon architecture est encore bancale, ca me complique la chose il faudra que je lise le cours MVC quand j'aurais le temps, car je me base sur l'intro de l'architecture qui se trouve dans le cours php.

                                                  Bonne soirée à toi

                                                  -
                                                  Edité par Drumlalane 22 janvier 2018 à 23:19:05

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    23 janvier 2018 à 19:34:31

                                                    j'ai avancé avec la gestion du jquery mais il y'a juste quelque chose qui m'échape, et que je n'arrive pas à régler je n'arrive toujour pas à acceder au POST en dehors de mon code jquery.

                                                    du coup je n'arrive pas à tester positivement le isset.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      24 janvier 2018 à 19:38:49

                                                      En fin de compte; il me semble que ce que je cherche à faire est impossible, je me suis un peu perdu dans les différents languages et leurs portées...

                                                      Je cherchais à exécuter mon php en fonction du résultat obtenu dans ma liste déroulante... ce qui semble logiquement impossible vu que le php executé coté srveur renvoi le html, sans recharger la page, il est impossible de traiter ma requete sql n'est ce pas ?

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        24 janvier 2018 à 22:05:42

                                                        Si c'est possible. Tu as juste pas compris le code AJAX.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          24 janvier 2018 à 22:54:13

                                                          effectivement encore désolé mais j'étais vraiment perdu,à force de tester plein de choses, j'ai fini par créer une zone ou je sélectionne mon produit, et un iframe avec plusieurs champs qui se remplissent en fonction de l'object sélectionné.

                                                          l'evenement jquery rempli le POST avec la selection et l'envoie vers ma page php ou je fais ma requete.

                                                          et du coup ce que je suis en train de faire c'est d'écrire l'ajax pour remplir les champs auto avec le resultat de ma requete grace au success.

                                                          j'arrive à executer mon php; j'ai presque réussi, merci beaucoup pour l'aide

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          formulaire: préremplir un champ avec conrenu bdd

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown