Initialiser une variable de session PHP dans un script JS
Bonjour,
Je d�sire, dans un script en javascript, initialiser une variable de session avec un attribut qui a �t� pass� � la fonction java script.
Pour l'instant, j'ai fait ceci :
Code:
1 2 3 4 5 6 7
| <script>
function servselect(id) {
document.getElementById("hmilieu").innerHTML = "YOU CLICKED ME!" + id;
<?php $_SESSION['ideSelectServ'] = id?>;
location.reload();
}
</script> |
mais cela ne fonctionne pas.
Pour info, document.getElementById("hmilieu").innerHTML = "YOU CLICKED ME!" + id; me sert uniquement pour avoir un r�sultat graphique qui me sert � d�bugger.
Si je commente leslignes suivantes ma fonction marche bien donc ces deux lignes contiennent des erreurs qui m'emp�chent d'avancer:
Code:
1 2
| <?php $_SESSION['ideSelectServ'] = id?>;
location.reload(); |
Si quelqu'un a un conseil pour moi, je vous en remercie !
mon but �tant de g�n�rer, lorsque je clique sur une ligne du select contenu dans <div id="cadreservices">, les <option> du <select> positionn� dans le <div id="cadrepersonnes">.
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| <form method="post" action="envoiforms/services.php" id="fen1">
<script>
function servselect(id) {
document.getElementById("hmilieu").innerHTML = "YOU CLICKED ME!" + id;
/* <?php $_SESSION['ideSelectServ'] = id?>;
location.reload();*/
}
</script>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=bdd;charset=utf8', 'root', 'rrrr');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$reponse1 = $bdd->query('SELECT servMair_id, servMair_nom FROM services_mairie');
?>
<div class="divparamBDD" id="divhaut">
<div class="spancolor" id="hgauche">
<div id="cadreservices">
<h2>Services mairie</h2>
<select name="selectservices" size="5" id="textareaservices">
<?php
while($donnees1 = $reponse1->fetch())
{
echo'<option value="'.$donnees1['servMair_id'].'" onclick="servselect(this.value)">'.htmlspecialchars($donnees1['servMair_nom'])."</option>\r\n";
}
echo'</select>';
$reponse1->closeCursor();
?>
</div>
</div>
<div class="spancolor" id="hmilieu">
hmilieu
</div>
<div class="spancolor" id="hdroite">
hdroite
</div>
</div>
<div class="divparamBDD" id="divbas">
<div class="spancolor" id="bgauche">
<div id="cadrepersonnes">
<?php
echo '<h2>Personnel attaché au service</h2>';
echo'<select size="5" id="textareapersonnes">';
if (isset ($_SESSION['ideSelectServ']))
{
$reponse2 = $bdd->query('SELECT pers_nom
FROM personnes p, etre_employe ee, employe e, oeuvrer o, services_mairie sm
WHERE ee.PERSONNES_pers_id = p.pers_id
AND ee.EMPLOYE_emp_id = e.emp_id
AND e.emp_id = o.EMPLOYE_emp_id
AND o.SERVICES_MAIRIE_servMair_id = sm.servMair_id
AND sm.servMair_id LIKE "'.$_SESSION['ideSelectServ'].'";');
while($donnees2 = $reponse2->fetch())
{
echo'<option value="'.$donnees2['pers_id'].'">'.htmlspecialchars($donnees2['pers_nom'])."</option>\r\n";
}
$reponse2->closeCursor();
}
echo'</select>';
?>
</div>
</div>
<div class="spancolor" id="bmilieu">
bmilieu
</div>
<div class="spancolor" id="bdroite">
bdroite
</div>
</div>
</div>
</form> |
Pas id de session dans JS pas bien ... :(
1 - Il faut checker la session via un script PHP
2 - v�rifier selon tes besoins avec js via ajax l�existence ou pas de la session callback json (true ou false) pas d'id ...
page ajax.php (check la session existe ou pas)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
$return = "";
$check_session = array();
try{
if(isset($_SESSION['ideSelectServ'])){
$return = $check_session['json_session'] = 1;
}else{
$return = $check_session['json_session'] = 0;
}
}catch(Exception $e){
$return = $e->getMessage();
}
echo json_encode($return);
?> |
Sinon il te reste plus qu'a catcher les donn�es retours json directement dans ton script js sans mettre le moindre code m�lang� js PHP breurk