PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » select interdépendants qui ne s'affiche pas » 03-10-2014 08:13:18

C'est possible...

je decouvre php, mysql et javascript et je constitue mon programme avec des bouts de script péchés a gauche et a droite sans tout comprendre.

Néanmoins, comme je le dis dans mon premier post, ca fonctionne... il y a juste un soucis quand je l'intègre dans ma page complète...

#2 Forum Général PHP » select interdépendants qui ne s'affiche pas » 03-10-2014 08:13:18

canichon
Réponses : 2

bonjour a tous,

j'ai développer 2 select interdependants avec des valeurs qui proviennent d'une BDD.

quand je les fais fonctionner juste à 2, ca marche mais quand je l'intègre dans ma page ( un peu plus compliquée ), le 2eme select ne s'affiche pas.

Ci dessous le code :


<?php
 
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
 
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "test";
 
/* On récupère si elle existe la valeur du contrat envoyée par le formulaire */

$info_imputation = isset($_POST['imputation'])?$_POST['imputation']:null;
/*$info_contrat = isset($_POST['contrat'])$_POST['contrat']:null; */

?>
<html lang="fr">
  <head>
    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
    <link rel="stylesheet" href="style.css">
    <title>Ajouter une RNC</title>
  </head>
  <body style="color:rgb(175,0,124); font-family:arial; background-color : rgb(179,179,179);"  >
   
    <?php
      if(isset($_POST['ok']) && isset($_POST['item']) && $_POST['item'] != "")
      { $contrat_selectionnee = $_POST['contrat'];
        $item_selectionne = $_POST['item'];
      }
      $connexion = mysql_pconnect($serveur, $admin, $mdp);
 
      if($connexion != false)
      { $choixbase = mysql_select_db($base, $connexion);
       
        $sql1 = "SELECT num_contrat, nom_client, type_equipement FROM test.commande";
        $rech_contrat = mysql_query($sql1);
       
        $num_contrat = array();
        $nom_client = array();
        $type_equipement = array();
   
        /* On active un compteur pour les contrats */
        $nb_contrat = 0;
 
        if($rech_contrat != false)
        { while($ligne = mysql_fetch_assoc($rech_contrat))
          { array_push($num_contrat, $ligne['num_contrat']);
            array_push($nom_client, $ligne['nom_client']);
            array_push($type_equipement, $ligne['type_equipement']);
       
            /* On incrémente de compteur */
            $nb_contrat++;
          }
        }
    ?>
 
  <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgitem">
   
    <!-- IMPUTATION -->
    <table name ="Imputation" width = "100%" class= "tabcontrat">
      <tbody>
        <tr>
          <td width = "15%"> <!--label Imputation-->
            <label for="imputation">Imputation :</label>
          </td>
          <td width = "35%"> <!--input Imputation-->
            <select required="required" style="width:200px; background-color : rgb(229,229,229);" name="imputation"; >
              <option>Type d'imputation</option>
              <?php          
                $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
                $requete = $bdd->query('select * from test.imputation');
                while ($donnees = $requete->fetch())
                { echo '<option>'.$donnees['imputation'].'</option>'; }
              ?>;
            </select>
          </td>
        </tr>
        <tr>
          <td width = "20%"> <!--label Contrat-->
            <label for="contratClient">Contrat :</label>
          </td>
          <td width = "35%"> <!--input Contrat-->
            <select style="width:200px; background-color : rgb(229,229,229);">
            <option value="-1">Numéro de Contrat</option>
              <?php
                for($i = 0; $i < $nb_contrat; $i++)
                {
              ?>
                <option value="<?php echo($num_contrat[$i]); ?>"<?php echo((isset($idr) && $idr == $num_contrat[$i])?" selected=\"selected\"":null); ?>><?php echo($num_contrat[$i]); ?></option>  
                <?php
                }
                ?>
            </select>
          </td>
        </tr>
        <tr>
          <td width = "20%"> <!--label Item-->
            <label for="contratClient">Item :</label>
          </td>
          <td width = "35%"> <!--input Item-->
            <?php
              mysql_free_result($rech_contrat);
 
              /* On commence par vérifier si on a envoyé un numéro de contrat et le cas échéant s'il est différent de -1 */
              if(isset($idr) && $idr != -1)
              {
                /* Création de la requête pour avoir les items de ce contrat */
                $sql2 = "SELECT num_item, designation_item FROM test.item where contrat=\"". $idr ." \";";
 
                if($connexion != false)
                { $rech_item = mysql_query($sql2, $connexion);
 
                  /* Un petit compteur pour les items */
                  $nd = 0;
 
                  /* On crée deux tableaux pour les numéros et les noms des items */
                  $num_item = array();
                  $desig_item = array();
 
                  /* On va mettre les numéros et noms des départements dans les deux tableaux */
                  while($ligne_item = mysql_fetch_assoc($rech_item))
                  {
                    array_push($num_item, $ligne_item['num_item']);
                    array_push($desig_item, $ligne_item['designation_item']);
 
                    $nd++;
                  }
 
                  /* Maintenant on peut construire la liste déroulante */
                  ?>
                    <select name="item" id="item" style="width:175px; background-color : rgb(229,229,229);">
                    <?php  
                      for($d = 0; $d<$nd; $d++)
                      {
                      ?>
                      <option value="<?php echo($code_item[$d]); ?>"<?php echo((isset($item_selectionne) && $item_selectionne == $code_item[$d])?" selected=\"selected\"":null); ?>><?php echo($num_item[$d]." - ". $desig_item[$d] .""); ?></option>
                      <?php
                      }
                      ?>
                  </select>
                  <?php
                }
                /* Un petit coup de balai */
                mysql_free_result($rech_item);
              }
            ?>
          </td>
        </tr>
      </tbody>
    </table><br><br>
   
  </body>
</html>
 

J'imagine qu'il y a un soucis de syntaxe mais je ne trouve pas lequel.

Merci de votre aide.

#3 Re : Forum Général PHP » select interdependants » 05-09-2014 23:13:52

en javascript... OK... pourquoi pas...

j'ai mis un identifiant à chaque "select".

et la fonction "do_update_select2", je la mets où ??

de plus, a ce que je comprend, on rend "disabled" le "select2" si on change "select1" mais ce que je veux c'est rendre "select2" "disabled" suivant une certaine selection du "select1" et pas juste sur le "onchange"...

#4 Forum Général PHP » select interdependants » 05-09-2014 23:13:52

canichon
Réponses : 3

bonjour à tous,

comme le dit le titre, je voudrais rendre 2 "select" interdépendants.

le code de base est le suivant :


<!--Imputation-->
  <hr style="width: 100%;"> <label for="imputation">Imputation :</label>
  <select required="required" style="width:250px;">
  <option>Sélectionner le Type d'imputation</option>
    <?php          
      $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');          
      $requete = $bdd->query('select * from test.imputation');
      while ($donnees = $requete->fetch())
      {
      echo '<option>'.$donnees['imputation'].'</option>';
      }
    ?> 
  </select>
   
<!--Contrat-->
  <hr style="width: 100%;"> <label for="contratClient">Contrat / Contract</label>:
  <select style="width:175px;" disabled>
  <option>Sélectionner le Contrat</option>
    <?php          
      $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');          
      $requete = $bdd->query('select * from test.commande');
      while ($donnees = $requete->fetch())
      {
        echo '<option>'.$donnees['num_contrat']." - ".$donnees['nom_client']." ".$donnees['type_equipement'].'</option>';
      }
    ?> 
  </select>
 

comme vous le voyez, le second "select" est "disabled" et je veux le rendre "enabled" suivant le choix du 1er "select".

j'imagine qu'un "simple "if" doit pouvoir regler le soucis mais je ne sais pas où le mettre et il me manque aussi la syntaxe.

Merci d'avance pour votre aide.

#5 Re : Forum Général PHP » nombre de ligne d'une table dans un input » 02-09-2014 10:31:09

Génial...

Rien a dire...

Rapidité... efficacité.

MERCI BEAUCOUP

#6 Forum Général PHP » nombre de ligne d'une table dans un input » 02-09-2014 10:31:09

canichon
Réponses : 2

bonjour à tous,

je debute en php et j'ai un peu de mal...

comme le titre l'indique, je voudrais recuperer le nombre de ligne d'une table pour l'inserer dans un "input" mais le systeme me met un message:

Notice: Array to string conversion in C:\xampp\htdocs\formulaire.php on line 30.

mon code est le suivant :


<label style="font-size: 20"; >Numéro de la RNC</label> :&nbsp;
           
<?php  
  $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
  $nbrnc = $bdd->query('select count(index_commande) from test.commande');
  $nbrncaffich = $nbrnc->fetch();
  echo $nbrncaffich
?>
<input name="nbRNC" style="text-align:center; font-size:15; color:rgb(175,0,124);" value="<?php echo $nbrncaffich; ?>" /><br><br>
 

Merci pour votre aide.

Pied de page des forums

Propulsé par FluxBB