TOPIC:

Liste déroulante / select depuis base de données 11 years 2 months ago #31776

  • Topic Author
  • jem24h
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 15
  • Thanks: 0
Bonjour :),

Après avoir passé pas mal de temps à chercher comment remplir une liste déroulante à partir d'une base de données; je vous fait part de ma solution :

je me suis très largement inspiré de ce post

Pour ma part, ça fonctionne en QUICKMODE et avec la version 1.72 de breezingforms

ETAPE 1 :
- Dans l'arborescence, selectionnez votre formulaire (et non pas le champs concerné ;)),
- Onglet avancé
- Dans le cadre options de formulaire, cliquer sur "plus d'options"
- Selectionner l'onglet "pièce de formulaire"
- Dans le cadre "Avant le formulaire" cliquer sur le bouton radio "personnalisé"
//vous etes normalement au même endroit que sur l'image jointe ci dessous

ETAPE 2 :
il faut écrire un petit bout de code en php(sans les balises) pour récupérer les infos dans la base
Je suis un newbie en programmation, donc mon code est sans doute loin d'être optimisé; mais bon, il a le mérite de marcher. ;)
        //ATTENTION, NE PAS MODIFIER LE NOM DE LA VARIABLE $test

        $this->execPieceByName('ff_InitLib');
	$test = "";
	mysql_connect("127.0.0.1","root","");//A ADAPTER EN FONCTION DE VOTRE SERVEUR
	mysql_select_db("PAT");//REMPLACER "PAT" PAR LE NOM DE VOTRE BASE DE DONNEES
	$lien='Select * from TabMais6';//VOTRE REQUETE
	$image=mysql_query($lien) or die (mysql_error());
	while($uneligne=mysql_fetch_assoc($image))
		{
		$test .=  "0;{$uneligne['col2']};{$uneligne['id']}\n";
                //ICI "col2" et "id" SONT DEUX COLONES DE LA BASE DE DONNEES
		}

ETAPE 3 :
Une fois ce code adapté à vos besoins, copiez la fonctions ci dessous à la suite du code précédent
Je l'ai récupérée sur le sité cité plus haut. Elle fonctionnetrès bien ainsi. Je n'ai rien modifié en ce qui me concerne ;)
function ff_setSelectList($name, $value)
{
  global $ff_processor;
  for ($r = 0; $r < $ff_processor->rowcount; $r++) {
    $row =& $ff_processor->rows[$r];
    if ($row->name==$name)
      $row->data2 = $value;
    unset($row);
  } // for
} // ff_setSelectList

ETAPE 4 :
Encore un petit élément à rajouter à la suite et le tour est joué ! :silly:
Il faut ensuite écrire à la suite l'appel de la fonction :
ff_setSelectList('NOM DU CHAMPS', $test);
//INDIQUER LE NOM DU CHAMPS DE VOTRE FORMULAIRE et NE PAS TOUCHER A LA VARIABLE $test

ETAPE 5 : SAUVEZ ! et observez le résultat

Si vous souhaitez faire de même pour d'autres champs, reprenez la démarche en sautant l'étape 3 et en changeant le nom de la variable $test(au début, et a la fin).

J'èspere que ça vous aura aidé et que vous galèrerez moins que moi :laugh:!

Si vous souhaitez utiliser ceci dans une application plus poussée, j'ai réussi a faire un hierselect (2 listes dépendantes liées à la base de données). Je décris la méthode dans le post : Re: how change values to select list...? .
C'est écrit avec mon piètre anglais, j'espere que ça ne vous perturbera pas trop ;)

Please Log in or Create an account to join the conversation.

Last edit: Post by jem24h.

Re: Liste déroulante / select depuis base de données 11 years 1 month ago #36002

  • CHACHICHOU
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 4
  • Thanks: 0
Hi ,

Thanks for that

I tried your code but is doesn't work for me even if it seems to be good .

Do you have any print screen of what it is supposed to do when the action script is written , i'm not sure that I understand
PS I speak french , so you can maybe explain it in french if it's better for you

Thks a lot

Eric

Please Log in or Create an account to join the conversation.

Re: Liste déroulante / select depuis base de données 7 years 10 months ago #120003

  • av74
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 16
  • Thanks: 0
Bonjour
J'ai essayé votre code en le modifiant (ci-dessous) pour l'adapter à ma base de données mais il ne fonctionne pas, pouvez vous m'aider s'il vous plait ?
Nom de la base de donnée : db321891463
Table : jos_users
Champ : name
Liste déoulante cible : nom

//ATTENTION, NE PAS MODIFIER LE NOM DE LA VARIABLE $test

$this->execPieceByName('ff_InitLib');
$test = "";
mysql_connect("127.0.0.1","root","");//A ADAPTER EN FONCTION DE VOTRE SERVEUR
mysql_select_db("db321891463");// LE NOM DE VOTRE BASE DE DONNEES
$lien='Select * from jos_users';//VOTRE REQUETE
$image=mysql_query($lien) or die (mysql_error());
while($uneligne=mysql_fetch_assoc($image))
{
$test .= "0;{$uneligne};{$uneligne}\n";
//ICI "col2" et "id" SONT DEUX COLONES DE LA BASE DE DONNEES
}

function ff_setSelectList($name, $value)
{
global $ff_processor;
for ($r = 0; $r < $ff_processor->rowcount; $r++)
{
$row =& $ff_processor->rows[$r];
if ($row->name==$name)
$row->data2 = $value;
unset($row);
} // for
} // ff_setSelectList

ff_setSelectList('nom', $test); // Nom du champ
//INDIQUER LE NOM DU CHAMPS DE VOTRE FORMULAIRE et NE PAS TOUCHER A LA VARIABLE $test
Part of the message is hidden for the guests. Please log in or register to see it.


Merci de votre aide

Please Log in or Create an account to join the conversation.

Re: Liste déroulante / select depuis base de données 7 years 10 months ago #120072

  • chrisal's Avatar
  • chrisal
  • Offline
  • Ultimate Breezer
  • Ultimate Breezer
  • Posts: 6983
  • Karma: 187
  • Thanks: 630
Hello av74,


can you please repeat your question in english/german or spanish? :laugh:


regards
Chris

Please Log in or Create an account to join the conversation.

Re: Liste déroulante / select depuis base de données 7 years 10 months ago #120117

  • av74
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 16
  • Thanks: 0
Hello Chris
I try to fill a list box with a table in my database with the code above but it does not work. Do you have a solution?
On the Advanced Features thank you

Please Log in or Create an account to join the conversation.

Re: Liste déroulante / select depuis base de données 7 years 10 months ago #120128

  • chrisal's Avatar
  • chrisal
  • Offline
  • Ultimate Breezer
  • Ultimate Breezer
  • Posts: 6983
  • Karma: 187
  • Thanks: 630
Hello again,

is this an external database or the default Joomla! database?


Is it the default table structure of the Joomla! users table?


Normally the code should look like this:
$this->execPieceByName('ff_InitLib');
$test = "1;Please select;";
$query='Select * from jos_users';//VOTRE REQUETE
$result = ff_select($query);

foreach($result As $res){
$test .= "0;{$res->name};{$res->id}\n";
//Name will be shown and id is the label
//ICI "col2" et "id" SONT DEUX COLONES DE LA BASE DE DONNEES
}

ff_setSelectList('nom', $test); // nom = name of select list?

function ff_setSelectList($name, $value)
{
global $ff_processor;
for ($r = 0; $r < $ff_processor->rowcount; $r++)
{
$row =& $ff_processor->rows[$r];
if ($row->name==$name)
$row->data2 = $value;
unset($row);
} // for
} // ff_setSelectList


regards
Chris

Please Log in or Create an account to join the conversation.

Last edit: Post by chrisal.
  • Page:
  • 1
  • 2
Moderators: ForumSupport
Time to create page: 0.054 seconds

BreezingForms Pro 1.4.7 for WordPress Released!

Available in the membership section.

September Discount!

Massive discounts on all subscriptions!

Get Your Subscription Here

Quick Links

Downloads

BreezingForms

ContentBuilder

BreezingCommerce

Templates

Documentation

BreezingForms

ContentBuilder

BreezingCommerce

Apprendre BreezingForms (French Community)

Apprendre et maîtriser BreezingForms par des tutoriels et exemples, le tout en français

breezingforms.eddy-vh.com

Questions et réponses sur les forums de l'AFUJ

AFUJ

Special Offer

Summer Sale! All subscriptions at a special price!

Includes prio support, all of our current and future Joomla!® extensions and Joomla!® templates for the duration of your membership.

Get it from here

3rd Party Discount - 25% Off

We help you to keep your costs under control. If you are a new member and purchased a form building tool from a different form vendor, then you'll get a 25% discount on our subscription plans.

How to receive the discount:

Send us a quick email to sales@crosstec.org with a proof of purchase (for example a paypal receipt), await payment instructions and enjoy your membership!