- Messages : 12
- Remerciements reçus 3
requete sql composant joomla2.5
- smiley88
-
Auteur du sujet
- Hors Ligne
- Membre junior
-
Moins
Plus d'informations
20 Jul 2012 15:50 #1
par smiley88
requete sql composant joomla2.5 a été créé par smiley88
Bonjour à jour, après avoir compris le principe du fonctionnement MVC de joomla. Mon soucis se situe dans le rapatriement des données à partir d'une base de donnée.
Je déclare ma fonction dans le modèle
réception des données dans view.html.php dans la fonction display.
et affichage des données dans le template
cela est censé afficher les last_name dans un combobox.
Mais cela m'indique une erreur :
Invalid argument supplied for foreach() in C:\wamp\www\open88\administrator\components\com_double_open88\views\open88\tmpl\edit.php on line 50
Je déclare ma fonction dans le modèle
Code:
function ListeJoueuse()
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select(
$this->getState(
'list.select',
'a.*'
)
);
$query->from('`#__bl_players` AS a');
//echo $query;
$db->setQuery($query);
return $db->loadObjectList();
}
réception des données dans view.html.php dans la fonction display.
Code:
/*chargement modèle*/
$model = &$this->getModel();
/*appel fonction*/
$liste = $model->ListeJoueuse();
/*recuperation résultat*/
$this->assignRef( 'liste', $listej );
et affichage des données dans le template
Code:
<select name="thelist" onChange="combo(this, 'theinput')">
<?php foreach($this->liste as $l) {?>
<option><?php $l->last_name?></option>
<?php } ?>
</select>
cela est censé afficher les last_name dans un combobox.
Mais cela m'indique une erreur :
Invalid argument supplied for foreach() in C:\wamp\www\open88\administrator\components\com_double_open88\views\open88\tmpl\edit.php on line 50
Le sujet a été verrouillé.
- lavsteph
-
- Hors Ligne
- V.I.P
-
- Fondateur
Moins
Plus d'informations
- Messages : 9394
- Remerciements reçus 500
21 Jul 2012 09:52 #2
par lavsteph
Réponse de lavsteph sur le sujet requete sql composant joomla2.5
Le sujet a été verrouillé.
- smiley88
-
Auteur du sujet
- Hors Ligne
- Membre junior
-
Moins
Plus d'informations
- Messages : 12
- Remerciements reçus 3
23 Jul 2012 11:32 #3
par smiley88
Réponse de smiley88 sur le sujet requete sql composant joomla2.5
oui il m'aide beaucoup mais actuellement je suis coincé au niveau de l'affichage de mes donnée. Je récupère correctement mes données mais l'affichage dans le combobox est assez difficile :
template :
echo var_dump($this->nom_joueuse); m'affiche mes données :
ma boucle :
template :
echo var_dump($this->nom_joueuse); m'affiche mes données :
| array 0 => object(JObject)[339] protected '_errors' => array empty public 'value' => string '1' (length=1) public 'text' => string 'AKIKI' (length=5) public 'disable' => boolean false 1 => object(JObject)[340] protected '_errors' => array empty public 'value' => string '2' (length=1) public 'text' => string 'BARBAT' (length=6) public 'disable' => boolean false 2 => object(JObject)[341] protected '_errors' => array empty public 'value' => string '131' (length=3) public 'text' => string 'SIBILLE' (length=7) public 'disable' => boolean false 3 => |
ma boucle :
Code:
<li><?php echo $this->form->getLabel('joueuse1'); ?>
<select name="thelist" onChange="combo(this, 'theinput')">
<?php foreach ($this->nom_joueuse as $l) {?>
<option><?php $l->id;?></option>
<?php } ?>
</select>
Le sujet a été verrouillé.
- smiley88
-
Auteur du sujet
- Hors Ligne
- Membre junior
-
Moins
Plus d'informations
- Messages : 12
- Remerciements reçus 3
23 Jul 2012 12:10 #4
par smiley88
Réponse de smiley88 sur le sujet requete sql composant joomla2.5
Je tiens à préciser que la table que je désire afficher dans mon combobox n'a pas de classe dans mon composant celle-ci est défini dans un autre composant. Je sais pas si cela peut-être utile.
Le sujet a été verrouillé.
- smiley88
-
Auteur du sujet
- Hors Ligne
- Membre junior
-
Moins
Plus d'informations
- Messages : 12
- Remerciements reçus 3
23 Jul 2012 16:42 #5
par smiley88
Réponse de smiley88 sur le sujet requete sql composant joomla2.5
voila pour fermer ce sujet j'ai réussi à afficher mes données depuis ma base de données dans ma combobox.
Voici le code pour les futurs recherches :
modèle :
Vue :
Template :
En espérant que cela vous aidera ! :top
Voici le code pour les futurs recherches :
modèle :
Code:
function ListeJoueuse()
{
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select(
$this->getState(
'list.select',
'a.*'
)
);
$query->from('#__bl_players AS a');
//echo $query;
// execution de la requéte
$db->setQuery($query);
// récupération des données
$listej = $db->loadObjectList();
return $listej;
}
Vue :
Code:
public function display($tpl = null)
{
$this->state = $this->get('State');
$this->item = $this->get('Item');
$this->form = $this->get('Form');
// Check for errors.
if (count($errors = $this->get('Errors'))) {
JError::raiseError(500, implode("\n", $errors));
return false;
}
//chargement modèle
$model = &$this->getModel();
//appel fonction
$nom = $model->ListeJoueuse();
//print_r($nom);
//recuperation résultat
$this->assignRef('nom_joueuse', $nom );
$this->addToolbar();
parent::display($tpl);
}
Template :
Code:
$nb = count($this->nom_joueuse);
//echo $nb;
?>
<li><?php echo $this->form->getLabel('joueuse1'); ?>
<select style="display:block; width:100px;"name="joueuse" onChange="combo(this, 'theinput') ">
<?php for ($i = 1; $i < $nb; $i++) {?>
<option><?php echo $this->nom_joueuse[$i]->last_name; ?></option>
<?php } ?>
</select>
En espérant que cela vous aidera ! :top
Les utilisateur(s) suivant ont remercié: lavsteph, Peter
Le sujet a été verrouillé.
- lavsteph
-
- Hors Ligne
- V.I.P
-
- Fondateur
Moins
Plus d'informations
- Messages : 9394
- Remerciements reçus 500
27 Jul 2012 15:56 #6
par lavsteph
Réponse de lavsteph sur le sujet requete sql composant joomla2.5
Bonjour,
je clos donc le sujet pour qu'il ne soit pas pollué à l'avenir.
je clos donc le sujet pour qu'il ne soit pas pollué à l'avenir.
Le sujet a été verrouillé.
Modérateurs: lavsteph, xillibit, tramber91, Scottux, serge, starter
Temps de génération de la page : 0.312 secondes