Citire din tag html si punere in sesiune php

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
Avatar utilizator
steell
Mesaje: 190

Citire din tag html si punere in sesiune php

salut
Scriptul are si JS si PHP, asa ca am postat aici.
Deci, vreau ca atunci cand apas pe un span cu class="retine" textul din acel span sa se salveze intr-o sesiune cu numele "retine", si apoi sa se deschida o fereastra in care va fi afisata valoarea acelei sesiuni.
Am facut asa:

Cod: Selectaţi tot

$('.retine').click(function(){
ctn = $(this).text();
rtn = "<?php $_SESSION['retine'] = '"+ctn+"'; ?>";
fereastra = open("mesaj-retinut.php", "numeFereastra", "width=400,height=300,left=200,top=100,status=no,toolbar=no,menubar=no");
});
Iar in "mesaj-retinut.php" am asta:

Cod: Selectaţi tot

<?php
session_start();
?>
<script>
document.write("<?php echo $_SESSION['retine']; ?>");
</script>
Dar nu imi arata nimic.
Apoi in loc de $_SESSION['retine'] am pus $_SESSION['user'] si imi arata userul din sesiune (deci nu sa salvat acel text in sesiune)
Am pus acest alert la sfarsitul primului script ca sa vad daca sa salvat acel text in sesiune

Cod: Selectaţi tot

alert ("<?php echo $_SESSION['retine']; ?>");
si imi arata bine, insa nu imi arata in acea fereastra.
Apoi am mutat acel alert() in pagina mesaj-retinut.php si nu imi mai arata nimic nici nu pornea alertul.
Xred ca gresesc undeva la amestecarea instructiunilor JS si PHP.

MarPlo Mesaje: 4343
Salut
JavaScript nu creaza Sesiune pe server, intai se executa codul PHP pe server, e adaugat in pagina, apoi in browser se executa JavaScript. Deci PHP nu stie ce valori creaza JavaScript.
Ca sa faci legatura intre valorile din JavaScript si PHP, sau mai exact, sa trimiti date din JavaScript la PHP, fara redeschiderea paginii, se face prin ceea ce se numeste Ajax.
In script-ul tau, cand se apasa click pe ".retine" si se preia textul din el, ar trebui executata o functie Ajax care trimite datele /textul la un script PHP ce va prelua si adauga acel text in Sesiune, apoi, dupa ce raspunsul de la server e afirmativ, se deschide acea fereastra cu pagina php.
- Vezi Cursul Ajax de pe site, sau in lectiile de la JavaScript /jQuery.

Sau, o alta varianta, e sa trimiti /adaugi textul din tag in adresa URL care deschide cu open() pagina php, iar in PHP preiei acel text si-l adaugi in SESSION.
Cam asa:

Cod: Selectaţi tot

<script>
$('.retine').click(function(){
  var ctn = $(this).text();
  window.open("mesaj-retinut.php?rt="+ctn, "numeFereastra", "width=400,height=300,left=200,top=100,status=no,toolbar=no,menubar=no");
});
</script>
Iar in "mesaj-retinut.php":

Cod: Selectaţi tot

<?php
session_start();
$_SESSION['retine'] = $_GET['rt'];
?>
<script>
document.write("<?php echo $_SESSION['retine']; ?>");
</script>

Subiecte similare