Bonjour,
Je cherche à créer un module permettant d'avoir la liste des participants à un évènement.
Au chargement je crée un combox avec la liste des évènements et sur changement je requete une 2ième fois pour afficher un tableau.
Le chargement du combo se passe bien, par contre quand je change la valeur il ne se passe rien.
Auriez vous une idée d'ou vient le problème svp?
Je cherche à créer un module permettant d'avoir la liste des participants à un évènement.
Au chargement je crée un combox avec la liste des évènements et sur changement je requete une 2ième fois pour afficher un tableau.
Le chargement du combo se passe bien, par contre quand je change la valeur il ne se passe rien.
Code:
<?php defined('_JEXEC') or die('Restricted Access'); use Joomla\CMS\Factory; use Joomla\CMS\Language\LanguageHelper; $input = Factory::getApplication()->input; $nowdate = JFactory::getDate('now', new DateTimeZone('Europe/Berlin')); $db = Factory::getDbo(); $query = $db->getQuery(true); $query->select($db->quoteName(array('id', 'title', 'next'))) ->from($db->quoteName('jm38_icagenda_events')) ->where($db->quoteName('next') .' >= '. $db->quote( $nowdate )) ->order($db->quoteName('next') . ' DESC'); //->setLimit('20'); $db->setQuery($query); $results = $db->loadObjectList(); function loadTableData() { $selected = JFactory::getApplication()->input->get('selected', '', 'STRING'); $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select($db->quoteName(array('t.eventid', 't.userid', 't.people', 'u.id', 'u.name','u.email'))); $query->from($db->quoteName('jm38_icagenda_registration', 't')); $query->join('LEFT', $db->quoteName('jm38_users', 'u') . ' ON (' . $db->quoteName('t.userid') . ' = ' . $db->quoteName('u.id') . ')'); $query->where($db->quoteName('t.eventid') . ' = ' . $db->quote($selected)); $db->setQuery($query); $results = $db->loadObjectList(); echo json_encode($results); jexit(); } ?> <script type="text/javaScript"> function updateTable(selectedValue) { console.log('updateTable called with selectedValue = ', selectedValue); jQuery.ajax({ url: 'index.php?option=com_ajax&module=mod_listing_part icipant&method=loadTableData&format=json&selected= ' + selectedValue, success: function(response) { var tableData = JSON.parse(response); var tableHtml = '<table>'; tableHtml += '<thead><tr><th>Nom</th><th>Mail</th><th>Nombres</th></tr></thead>'; tableHtml += '<tbody>'; for (var i = 0; i < tableData.length; i++) { var row = tableData[i]; tableHtml += '<tr><td>' + row.name + '</td><td>' + row.email + '</td><td>' + row.people + '</td></tr>'; } tableHtml += '</tbody></table>'; jQuery('#table-container').html(tableHtml); }, error: function(xhr, status, error) { console.error(xhr.responseText); } }); } </script> <select name="mon_combobox" onchange="updateTable(this.value)"> <?php foreach ($results as $result) : ?> <option value="<?php echo $result->id; ?>"><?php echo $result->title; ?></option> <?php endforeach; ?> </select> <div id="table-container"></div>
Commentaire