Extensions et tutorials gratuits disponibles sur internet pour Dreamweaver. PHP et ASP. Classement thématique. Blog référencé par Adobe Communauté Dreamweaver. Un peu de philosophie.

Dreamgratuit - Philosophie

Créer un sondage en PHP avec Dreamweaver – 1re partie

31 mars 2008 | Posté par caroder à 07:36

Bookmark and Share

Dans ce tutoriel en 5 parties, nous allons créer un petit sondage avec bouton radio (choix multiple, réponse unique) qui présentera à l’utilisateur les résultats du sondage une fois qu’il aura voté. Merci à Floppy dont je me suis inspirée...

La question de notre sondage portera sur l’éditeur de code utilisé par le sondé :)

On suppose que votre base de données (dans ce tuto appelée ma_base) existe déjà et que ce fonctionnel s’insère dans un site existant possédant une connexion nommée ma_Connexion.

Tout d’abord allez dans PHPMyAdmin afin de créer la table contenant le sondage :

#
# Structure de la table 'sondage'
#
CREATE TABLE tb_sondage (
    id_reponse tinyint(4) NOT NULL default '0',
    compteur bigint(20) NOT NULL default '0',
    libelle varchar(255) NOT NULL default '',
    PRIMARY KEY (id_reponse)
) TYPE=MyISAM;

#
# Contenu de la table 'sondage'
#
INSERT INTO tb_sondage VALUES (1, 0, 'Dreamweaver');
INSERT INTO tb_sondage VALUES (2, 0, 'Ultra Edit');
INSERT INTO tb_sondage VALUES (3, 0, 'Notepad++');
INSERT INTO tb_sondage VALUES (4, 0, 'Autres');

Nous allons maintenant réaliser la page qui contient le sondage. Faites Fichier >> Nouveau >> Page vierge >> PHP >> Mise en forme Aucune.

Vérifiez en mode code, que la 1re ligne de votre document est bien :

<?php require_once('Connections/ma_Connexion.php'); ?>

Nous allons tout d’abord créer le squelette du formulaire contenant le sondage. Pour cela, nous respectons les standards W3C :

<form name="vote" id="vote" >
<fieldset>
    <legend>Sondage</legend>
    <p>Quel éditeur de code utilisez-vous ?</p>
    <label for=""></label>
    <input name="reponse" id="" type="radio" value="" />
    <br />
</fieldset>
  <p>
  <input id="button1" type="submit" value="Voter" />
  </p>
</form>

Voici pour info la CSS que j’utilise dans ce tutorial :

<style media="screen" type="text/css">
form { font-size:0.8em; background:#e0e0e0; width:250px; padding:10px; margin:0 auto; border:1px solid #e1e1e1; font-family: Arial, Helvetica, sans-serif; }
form fieldset {width:230px; display:block; padding:5px; line-height:1.5em; border:1px solid #fff; margin:15px 0 0 5px;}
form legend { border:1px solid #666; color:#f00; font-size:1em; margin-bottom:0; padding:3px; width:60px; background:none; font-weight:bold;}
form label {clear:left; display:block; float:left; width:120px; text-align:right; padding-right:10px; color:#000; margin-bottom:0.5em; font-size:1em; line-height:1.5em; }
form input {padding:0; margin-bottom:0.8em;}
form #button1 { background:#ff6600; border:1px solid #333; color:#fff; padding-right:0.5em; cursor:pointer; width:100px; margin-left:75px; font-weight:bold;}
</style>

Vous constatez ici qu’il n’y a qu’un seul bouton radio sans libellé ni valeur. Nous allons pour cela utiliser un jeu d’enregistrement et un comportement serveur.

Pour le jeu d’enregistrement, nous allons paramétrer la fenêtre comme suit :

sondage1

Une fois validé cette fenêtre, mettez-vous en mode code et ouvrez le panneau de liaison. Faites cliquer-glisser les items « id_reponse » et « libelle » comme indiqué dans la portion de code ci-dessous :

      <label for="<?php echo $row_RS_reponse['libelle']; ?>"><?php echo $row_RS_reponse['libelle']; ?></label>
      <input name="reponse" id="<?php echo $row_RS_reponse['libelle']; ?>" type="radio" value="<?php echo $row_RS_reponse['reponse']; ?>" />
      <br />

Maintenant sélectionnez le code ci-dessus et appliquez le comportement serveur « Région répétée » que vous paramétrez bien évidemment à « tous les enregistrements ».

Si vous affichez la page dans votre navigateur, vous devez obtenir ceci :

sondage2

Pour mettre à jour le compteur dans la table, il faut maintenant insérer la réponse faite par l’utilisateur dans le compteur de la table tb_sondage.  Pour cela, nous allons utiliser le comportement serveur « insérer un enregistrement » que nous allons remanier. Voici le paramétrage de cette fenêtre :

sondage3

Mettez la fenêtre principale en mode code si ce n’est déjà fait et modifier les lignes suivantes :

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "vote")) {
  $insertSQL = sprintf("INSERT INTO tb_sondage (reponse) VALUES (%s)",
                       GetSQLValueString($_POST['reponse'], "int"));

comme suit (en gras ci-dessous) :

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "vote")) {
  $insertSQL = sprintf("UPDATE tb_sondage set compteur = compteur + 1 WHERE id_reponse =%s",
                       GetSQLValueString($_POST['id_reponse'], "int"));

Tester votre fonctionnel dans votre navigateur : si tout se passe bien vous devriez voir le compteur s’incrémenter à chaque vote !

Nous verrons donc bientôt comment afficher en ligne les résultats du vote.
(disponible ici : http://dreamgratuit.canalblog.com/archives/2008/04/03/8589836.html )

---------------------------------------------------------------------------------------

This tutorial is about building a poll (vote / survey) system with Dreamweaver / PHP - MySQL

Catégorie : Créer un sondage en PHP avec Dreamweaver | Permalien [#] | Tags : ,