Salut,
La initializarea unui <select> din pagina am un set de date ca valori in <select> (array). La actionarea unui buton vreau sa schimb array-ul si fac asta cu ajax (fac alt query pentru <select>) iar query il salvez in $_SESSION apoi din ajax revin in formular. Desi inlocuiesc array-ul pentru <select> cu continutul din $_SESSION lista nu se schimba decit dupa refresh. Cred ca se comporta corect, dar ce ar trebui sa fac sa rezolv? Nu vreau sa fac refresh pagina, numai refresh <select>. Multumesc.
$_SESSION din Php la Ajax
-
- Mesaje: 430
$_SESSION din Php la Ajax
MarPlo
Mesaje: 4343
Salut
Ar fi de folos partea de cod cu ce ai incercat sa faci: php, javascript si html cu form-ul /<select>-ul.
Ar fi de folos partea de cod cu ce ai incercat sa faci: php, javascript si html cu form-ul /<select>-ul.
andras
Mesaje: 430
Am redus la limita.
In javascript se trimite cu ajax:
Fisierul apelat cu ajax:
In javascript se trimite cu ajax:
Cod: Selectaţi tot
<script>
function vizibilForm2(clasa) {
document.getElementById("frm2").style.display = 'block';
var echipa = document.getElementById("echipa").value;
var datacrt = document.getElementById("datacrt").value;
var data_json = {
"clasa" : clasa,
"echipa" : echipa,
"datacrt" : datacrt
};
function my_ajax2(phpfile, data_json, type) {
$.ajax({
async : false,
type : type,
url : phpfile,
data : data_json,
success : function(msg) {
}
});
}
my_ajax2("/cms/filtruuseri.php", data_json, "post");
return false;
}
</script>
Cod: Selectaţi tot
<?php
if(!isset($_SESSION)) session_start();
$_SESSION['filtruuseri'] = [];
// la alegerea echipei se face filtru pe useri
$echipa = $_POST['echipa'];
$datacrt = $_POST['datacrt'];
include('common.php');
$clasa = $_SESSION['clasa'];
include (CALE.'include/varclase.php');
$vechipa = ${'obj'.$clasa}->vechipa;
$tipus = "SELECT `user_id`, `nume`, `echipaid` FROM `useri`
WHERE `echipaid` = ".$echipa."
ORDER BY `nume` ";
$tip_r = $conn->sqlExec($tipus);
$_SESSION['filtruuseri'] = $tip_r;
?>
MarPlo
Mesaje: 4343
Nu stiu ce transmiti la ajax, ce "echo" ai in php. Nici in ajax la "success" nu faci ceva.
andras
Mesaje: 430
Tocmai aici nu inteleg (e vina mea), daca in fisierul apelat cu ajax pun in SESSION o variabila pe care o folosesc (fara refresh) in alt fisier (tot ca SESSION) si in ambele fisiere am session_start(), mai este nevoie sa pun echo? Nu se lucreaza pe sesiune? Aici e ceva ce imi scapa.
MarPlo
Mesaje: 4343
Ajax nu primeste $_SESSION, ci doar text /sir transmis de php. Ceea ce e transmis la browser spre afisare aceea primeste ajax-ul. Nu array, obiect sau variabila; ci doar sir.
andras
Mesaje: 430
Acum am inteles, multumesc! Asta imi va schimba modul de abordare. Eu m-am incapatinat sa cred ca fiind vorba de un fisier PHP accepta $_SESSION in orice conditii. Dar nu e asa.
MarPlo
Mesaje: 4343
Fisierul php accepta si recunoaste SESSION, dar ajax e doar un sistem javascript care primeste sirul /textul transmis la browser, cu un "echo", var_dump(), mesaj eroare; orice se poate afisa in browser. Nu are legatra cu ce accepta partea de pe server.
andras
Mesaje: 430
Pentru mine este important ca am inteles acest mecanism. Mai de mult timp aveam aceasta dilema.
Am schimbat modul de abordare, am renuntat la $_SESSION iar o parte din formul 2 il construiesc direct in fisierul apelat cu ajax si la success: il afisez in pagina, acum functioneaza bine. E mai simplu dupa ce am inteles mecanismul.
Am schimbat modul de abordare, am renuntat la $_SESSION iar o parte din formul 2 il construiesc direct in fisierul apelat cu ajax si la success: il afisez in pagina, acum functioneaza bine. E mai simplu dupa ce am inteles mecanismul.
Subiecte similare
-
Post cu Ajax in modal
JavaScript - jQuery - Ajax
Primul mesaj
Bună ziua,Ultimul mesaj
Vreau să trimit în aceeași pagină dar în modal două id-uri. Prin alert(id) îmi arată conținutul postului trimis dar în modal nu imi...
Nu prea inteleg mecanismul si ce anume nu functioneaza.
Oricum, daca functioneaza cand pui manual id-ul, poate ca problema e de la php.
Trebuie sa... -
Ordine de executie cu jQuery-AJAX
JavaScript - jQuery - Ajax
Primul mesaj
Am acest cod (ajax este asincron):Ultimul mesaj
function echoHello(){
return $.ajax({
//this will return hello ;
});
}
function echoWorld(){
return world...
Ajax face un apel către serverul web și este asincron. Nu știi cât va dura pana la raspuns. Este la fel ca:
setTimeout(_ => {... -
Ajax fade mesaj si redirect dupa un timp
JavaScript - jQuery - Ajax
Primul mesaj
Am codul asta si vreau in loc de input type=button sa fie submit, dar sa imi dea fade la fel in 5 secunde de cand apare eroarea.Ultimul mesaj
Daca schimb cu...
Am rezolvat,multumesc frumos de ajutor