afficher dans une zone de texte le choix d'une liste

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher dans une zone de texte le choix d'une liste

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 19 déc. 2011, 23:16

Ok, bon courage pour la suite, si jamais je trouve une piste (je suis entrein d'étudier le JS) je te dit quoi :)

Re: afficher dans une zone de texte le choix d'une liste

par bili31 » 19 déc. 2011, 16:38

Ok, Je te tiendrais au courant de mes avancées.
Bonne journée.

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 19 déc. 2011, 15:21

Oui c'est là qu'il te faut du JS et qu'il nous fait l'aide de qqun de plus expérimenté que moi en JS. En attendant, essaye de chercher des balises JS pour faire une action après un choix, du genre "onclick" ou "onselect"

Re: afficher dans une zone de texte le choix d'une liste

par bili31 » 19 déc. 2011, 14:18

Alors, la liste déroulante se remplie depuis la BDD, par contre quand je clique sur afficher, il n'y a rien qui s'affiche dans la zone de texte!

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 19 déc. 2011, 11:53

Ca m'a l'air bon (mais je ne bosse jamais avec l'extension mysql, j'utilise PDO donc je ne peux pas vérifier pour la connexion/requette BDD). Le script fonctionne ? Ca donne quoi ?

Re: afficher dans une zone de texte le choix d'une liste

par bili31 » 18 déc. 2011, 23:17

<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "nom_serveur";
$admin   = "root";
$mdp     = "mot_de_passe";
$base    = "nom_base";
/* On récupère si elle existe la valeur de l'activité envoyée par le formulaire */
$idr = isset($_POST['activites'])?$_POST['activites']:null;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un département selon la région choisie</title>
<meta name="description" content="Listes déroulantes dynamiques inter-dépendantes" />
<meta name="keywords" content="" />
<meta name="author" content="Cyrano" />
<meta name="generator" content="Zend Studio Environnement et WebExpert 5" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Pragma" content="no-cache" />
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">

<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
*  car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
    $choixbase = mysql_select_db($base, $connexion);
    $sql1 = "SELECT `ID`, `activite`".
    " FROM `activites`".
    " ORDER BY `ID`";
    $rech_activites = mysql_query($sql1);
    $code_activite = array();
    $activite = array();
    /* On active un compteur pour les activités */
    $nb_activites = 0;
    if($rech_activites != false)
    {
        while($ligne = mysql_fetch_assoc($rech_activites))
        {
            array_push($code_activite, $ligne['ID']);
            array_push($activite, $ligne['activite']);
            /* On incrémente de compteur */
            $nb_activites++;
        }
    }
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="afficher">

<legend>Sélectionnez une activité</legend>
<p>
  <select name="activite" id="activite" ;">
    <option value="-1">- - - Choisissez une activité - - -</option>
    <?php
    for($i = 0; $i < $nb_activites; $i++)
    {
?>
    <option value="<?php echo($code_activite[$i]); ?>"<?php echo((isset($idr) && $idr == $code_activite[$i])?" selected=\"selected\"":null); ?>><?php echo($activite[$i]); ?></option>
    <?php
    }
    ?>
  </select>
  <?php
    mysql_free_result($rech_activites);
    /* On commence par vérifier si on a envoyé un numéro d'activité et le cas échéant s'il est différent de -1 */
    if(isset($idr) && $idr != -1)
    {
            ?>
  
  <?php
        }
        
        
    }
?>
  <br /><input type="submit" name="ok" id="ok" value="Afficher" />
</p>
<textarea name="affichage" id="affichage" cols="45" rows="5">  
    
    </textarea>

</form>
<?php
    /* Terminé, on ferme la connexion */
    mysql_close($connexion);


    
 
?>



</body>
</html>

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 18 déc. 2011, 21:03

Ok, bon courage :)

Re: afficher dans une zone de texte le choix d'une liste

par bili31 » 18 déc. 2011, 12:43

Merci beaucoup Arthur pour ton aide, je vais créer la page qui contiendra la liste déroulante alimentée par une BDD ainsi que la zone de texte qui contiendra le choix de l'activité et je posterai à ce moment le code, peut être que quelqu'un nous aidera pour le reste.
Je reviens dès que j'ai fini!!

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 18 déc. 2011, 11:45

- récupérer la liste d'activité en BDD :

une requette MySQL sur ta BDD suffira. Va voir ici : http://www.siteduzero.com/tutoriel-3-34 ... x-bdd.html
et tu devrais t'en sortir pour la requette, sinon je t'aiderais :wink:

- créer une liste déroulante de ces activités :

Tu sais créer une liste déroulante en HTML ? sinon, va ici : http://www.siteduzero.com/tutoriel-3-13 ... #ss_part_4
Ensuite, on va créer cette liste avec une boucle en PHP qui va tourner tant que la BDD envoi une ligne -> créer un choix.

- action au clic sur une activité

C'est là que sont mes limites : le JS ... Dans chaque élement d'option de la liste, il doit y avoir une balise JS (qui doit être du type "onclick" ou "onselect" je ne sais pas :s ) qui fait appel à une fonction qui affiche plus bas son nom et la possibilité de supprimer et renommer. Or sans JS c'est impossible et je suis seulement entrein de l'apprendre ...

Donc je peux t'aider pour les deux premières étapes, mais pour la suite quelqu'un devra venir :priere:

Re: afficher dans une zone de texte le choix d'une liste

par bili31 » 17 déc. 2011, 23:02

C'est exacte Arthur, je te remercie pour ton soutien.

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 17 déc. 2011, 18:07

Alors on va voir l'algorythme ensemble.

- récupérer la liste d'activité en BDD
- créer une liste déroulante de ces activités
- quand on clique sur une activité :
- son nom s'affiche plus bas avec la possibilité de la supprimer ou de la renommer

c'est bien ça ?

Re: afficher dans une zone de texte le choix d'une liste

par bili31 » 17 déc. 2011, 16:35

Si tas une piste je suis preneur...

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 17 déc. 2011, 15:52

Oula modifier aussi, il va falloir faire un sacré code.
En tout cas, les modifications et les suppressions se font dans une base de donnée ?
Pour l'affichage, si tu veux pouvoir modifier l'activité tu ne peux pas utiliser de text area mais plutot faire un champ pour chaque activité, sinon au traitement ça sera plus chaud (faisable mais plus complexe)
Je peux te mettre sur la piste, mais tu va avoir besoin de beaucoup de JS et malheuresement je ne maitrise pas assez ce language ...

Re: afficher dans une zone de texte le choix d'une liste

par bili31 » 17 déc. 2011, 14:40

Oui, c'est ça sauf que je voudrais pouvoir supprimer l'activité qui c'est affiché dans la zonne de texte et non pas de la liste déroulante et avoir la possibilité de la remplacer par une autre activité.
Pour la zone de texte, je pense que le mieux c'est qu'elle soit "text area" pour que je puisse afficher plusieurs choix d'activités à la fois.
Merci Arthur pour ton aide!

Re: afficher dans une zone de texte le choix d'une liste

par arthur77 » 17 déc. 2011, 13:53

Donc en gros :
- tu récupère une liste d'activité dans une BDD
- tu fais une liste déroulante de ces activités
- tu en sélectionne une qui s'affiche dans une zone de texte
- et tu clique pour supprimer cette activité de la BDD

c'est bien ça ?

La zone de texte, c'est une zone de texte modifiable ( <input type="text" name="zone_text" /> ou <textarea name="text"> ...) ou juste un texte affiché (HTML ou echo 'texte';) ?