Welcome, Guest
Username: Password: Remember me

TOPIC: Liste déroulante dont les choix se remplissent avec les réponses

Liste déroulante dont les choix se remplissent avec les réponses 1 year 3 weeks ago #98718

  • elitim
  • elitim's Avatar
Bonjour à tous..Je cherche à faire une liste de choix, avec un choix "autre". Une fois saisi et envoyé, la liste de choix contiendra ce nouveau choix, etc...

De ce fait, la liste de choix s'auto-remplira avec tous les choix possibles

D'après ce que je comprends, il faut faire un sql sur la base de données qui contient la liste des choix, et un rafraichissement, pour réinjecter les résultats...

Heu, on fait ça comment ???
The administrator has disabled public write access.

Liste déroulante dont les choix se remplissent avec les réponses 1 year 3 weeks ago #98789

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6268
  • Thank you received: 800
  • Karma: 239
Salut,

Ce n'est pas trivial ... et demande un temps de développements.

Sinon: je déplace ton message dans la partie FR ...

Denis
The administrator has disabled public write access.

Liste déroulante dont les choix se remplissent avec les réponses 1 year 2 weeks ago #98956

  • elitim
  • elitim's Avatar
Bon, je me suis plongé un peu plus dans le problème et voilà où j'en suis. Limesurvey collecte les choix des listes déroulantes dans la table ANSWERS. les choix "autres" des listes déroulantes sont dans la table du questionnaire en cours, sous la forme {SGA}other

J'ai donc crée une page php avec une simple connection sql pour injecter dans la table answer les réponses autres de la liste déroulante..Et ça marche !

Encore quelques petites corrections pour arriver à faire une mise à jour totalement automatique..mon code :

<?php

// 1. Create a database connection
$connection = mysqli_connect(localhost,"utilisateur","mdp");
if (!$connection) {
die("Database connection failed: " . mysqli_error());
}

// 2. Select a database to use
$db_select = mysqli_select_db($connection, "_limebase");
if (!$db_select) {
die("Database selection failed: " . mysqli_error());
}


// on crée la requête SQL
$sql = 'SELECT 716469X1X4other FROM ls_survey_716469';

// on envoie la requête
$req = mysqli_query($connection,$sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_connect_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysqli_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours(juste pour tester)

echo ' <i>intervenants : '.$data.'</i><br>';

// on copie les résultats dans la table answer
$data = mysqli_real_escape_string($connection,$data);

mysqli_query($connection,"INSERT INTO ls_answers (qid,code,answer,sortorder) VALUES (4,4,'$data',4)");

//il faut que j'automatise l'insertion de qid, code et sortorder. J'ai mis manuellement ces données
}



// on ferme la connexion à mysql
//mysqli_close();
?>
Last Edit: 1 year 2 weeks ago by elitim.
The administrator has disabled public write access.

Liste déroulante dont les choix se remplissent avec les réponses 1 year 2 weeks ago #98977

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6268
  • Thank you received: 800
  • Karma: 239
Salut,

Il faut qe tu udate les code en fonction surtout ...
Si les codes sont les mêmes alors tu ne pourras pas avoir des réponses différentes

A la riguqeur un
$sql = 'COUNT(*) FROM ls_survey_716469 WHERE 716469X1X4other!=''';

Pour le décompte (c'est l'idée : le SQL est boggué)

Sinon, je préfère utiliser un autocomplete pour ce genre de problème : une seule question de type texte, j'ajoute manuelle mes réponses principale dans le tableau de retour avant, j'interroge ma base avec un tri par nombre (distinct), je fait un array_unique pour supprimer les doublons et je retourne un json dans l'autocomplete.

Denis
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.117 seconds
Donation Image