Bonjour,
J'ai créé un composant.
Dans une page PHP :
. J'effectue par une balise A l'appel d'une autre page
. Lors du clic de la balise, je crée une variable de session PersRech2 par une requête AJAX qui est envoyé par GET à un fichier CREER_VAR_SESSION.PHP
Le script :
. Crée la variable de session par JSON
. Envoie la variable de session à la page CREER_VAR_SESSION
. Appelle la page de destination de la balise A
Or, le script AJAX :
. Ne crée pas la variable de session PersRech2
. Ouvre bien la page de destination
J'ai checké toutes les variables de session, elle ne figure nulle part.
Pouvez-vous m'aider à remédier à cette erreur.
Fichier origine
Fichier creer_var_session.php
Merci d'avance de votre aide
Philippe
J'ai créé un composant.
Dans une page PHP :
. J'effectue par une balise A l'appel d'une autre page
. Lors du clic de la balise, je crée une variable de session PersRech2 par une requête AJAX qui est envoyé par GET à un fichier CREER_VAR_SESSION.PHP
Le script :
. Crée la variable de session par JSON
. Envoie la variable de session à la page CREER_VAR_SESSION
. Appelle la page de destination de la balise A
Or, le script AJAX :
. Ne crée pas la variable de session PersRech2
. Ouvre bien la page de destination
J'ai checké toutes les variables de session, elle ne figure nulle part.
Pouvez-vous m'aider à remédier à cette erreur.
Fichier origine
Code HTML:
<?php \defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; HTMLHelper::_('jquery.framework'); $cujus1 = $IdAsc; $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select($db->quoteName(array('id', 'name', 'prename', 'sexe', 'naiss_annee', 'deces_annee'))); $query->from($db->quoteName('#__daglink_personnes')); $query->where($db->quoteName('id') . ' = ' . $cujus1); $db->setQuery($query); $row = $db->loadRow(); ?> <?php $sexe1 = ($row['3'] == 'm') ? 'M' : (($row['3'] == 'f') ? 'F' : $row['3']); $naiss = ($row['4'] > 100) ? $row['4'] : '???'; $mort1 = ($row['5'] > 100) ? 'arbre20b2aa' : 'arbre20b7'; $mort2 = ($row['5'] > 100) ? 'arbre20b1aa' : 'arbre20b8'; echo '<div class="arbre100">'; echo '<a id="lienVar" href="#">'; echo '<div class="' . $mort1 . '">' . $row['2'] . ' </div><div class="' . $mort2 . '">' . $row['1'] . '</div>'; echo '</a>'; echo '<div class="arbre101">'; echo ($sexe1 == 'M') ? Text::_('COM_DAGLINK_PERSONNE_SEXE_HOMME') : Text::_('COM_DAGLINK_PERSONNE_SEXE_FEMME'); echo '</div><br/>(' . $naiss . ' - '; echo ($row['5'] > 100) ? $row['5'] . ')</div>' : Text::_('COM_DAGLINK_VIE') . ')</div>'; ?> <script> document.getElementById('lienVar').addEventListener('click', function(event) { event.preventDefault(); // Décl. object var xhr = new XMLHttpRequest(); // Récup. variable PHP var PersRech2 = <?php echo json_encode($row['0']); ?>; // Envoi variable xhr.open('GET', 'creer_var_session.php?varValue=' + encodeURIComponent(PersRech2), true); // Appel page destination xhr.onload = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); // Redirect only if the session variable is set successfully if (xhr.responseText.trim() === 'Session variable PersRech2 ok') { window.location.href = 'index.php?option=com_daglink&view=personnes&Itemid=398&lang=fr'; } } }; // Send the request xhr.send(); }); </script>
Fichier creer_var_session.php
Code HTML:
<?php
/
\defined('_JEXEC') or die;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\LayoutHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Factory;
use Joomla\CMS\Session\Session;
HTMLHelper::_('jquery.framework');
if (isset($_GET['varValue'])) {
$PersRech2 = htmlspecialchars($_GET['varValue'], ENT_QUOTES, 'UTF-8');
// Création var. session
$_SESSION['PersRech2'] = $PersRech2;
// Contrôle
echo "Variable PersRech2 créée";
} else {
echo "Requête invalide";
}
?>
Philippe
Commentaire