Salutare!
In cadrul unui site planuiesc sa folosesc 2 limbi.
Site-ul e impartit in 3 tabele.
1-ul tabel contine imaginea de top.
al 2-lea tabel contine 2 coloane, prima cu meniul si a 2-a cu putina informatie text.
al 3-lea tabel reprezinta bara de jos.
vreau sa folosesc ajax pt schimbarea limbilor.
la declansarea schimbarii(click-ul pe schimbarea limbii) sa se schimbe o variabila din sesiune.
textul si meniul din coloanele 1 si 2 al tabelului 2 este accesat prin functia "include".
Deci, la apasarea butonasului pt schimbarea limbii, variabila $_SESSION['lang'] isi schimba valoarea din true in false, dupa care se face refresh la tabelul 2, acolo va fi urmatorul cod :
if ($_SESSION['lang']==true)
{
include("blocks/menu2.php");
}
else
{
include("blocks/menu.php");
}
Ceva de genu asta.
Stiu javascript, daca e necesar introduc si in bd ceva, etc.
Va rog mult sa ma ajutati
P.S.
M-am uitat pe niste site-uri, da' nu e nimic clar pe acolo.
AJAX
Moderator: Moderatori
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
daca vrei ceva ca aici atunci iti zic cum am facut eu.
schimbarea limbii după cum vezi acolo se produce la acțiunea din acel meniu și se face trimitere la un script php care modifică variabila de sesiune din en în ro după care se reâncarcă pagina în limba selectată
schimbarea limbii după cum vezi acolo se produce la acțiunea din acel meniu și se face trimitere la un script php care modifică variabila de sesiune din en în ro după care se reâncarcă pagina în limba selectată
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
-
- Senior Member
- Mesaje: 1486
- Membru din: Mar Mai 10, 2005 11:53 pm
- Localitate: Drobeta Turnu Severin
Vrei sa incarci numai tabelul 2 cu cele doua coloane.
La structura ta adauga un <div>
Prin AJAX trimiti la un script care face chestia ta cu include iar la primirea raspunsului inlocuiesti continutul div-ului (tabel2) cu ce ai primit.
Alta varianta ar fi sa folosesti un obiect JSON care sa contina separat continutul celor doua celule ale tabelului 2.
Asa :
Obiectul JSON va avea o structura :
raspuns->meniu pui in celula cu id="meniu" si celalalt dincolo.
Prima varianta este mai usor de realizat dar are dezavantajul ca introduce div-ul suplimentar si mai mult ca sigur va trebui sa ajustezi cate ceva din CSS
Cred ca vrei sa folosesti AJAX pentru ca fiecare optiune din meniu iti aduce in celula 2 a tabelului2 informatii tot prin AJAX.
Daca ai realizat deja asta este greu sa modifici ca sa folosesti varianta sanatoasa (fara JS) a lui Birkoff, desi asa ar trebui facut.
La structura ta adauga un <div>
Cod: Selectaţi tot
<table> ... // tabel 1 - antet </table>
<div id="tabel2>
<table>
<tr>
<td>meniu</td><td>info</td>
</tr>
</table>
</div>
<table> ...// tabel 3 - subsol </table>
Prin AJAX trimiti la un script care face chestia ta cu include iar la primirea raspunsului inlocuiesti continutul div-ului (tabel2) cu ce ai primit.
Alta varianta ar fi sa folosesti un obiect JSON care sa contina separat continutul celor doua celule ale tabelului 2.
Asa :
Cod: Selectaţi tot
...
<table>
<tr>
<td id="meniu"> meniu </td>
<td id="info"> info </td>
</tr>
</td>
Obiectul JSON va avea o structura :
Cod: Selectaţi tot
{"raspuns":
{
"meniu": "continut meniu - aici se gaseste fisierul inclus meniu.php",
"info": "info - aici se va gasi inclus celalat fisier, in limba pe care o vrei"
}
}
raspuns->meniu pui in celula cu id="meniu" si celalalt dincolo.
Prima varianta este mai usor de realizat dar are dezavantajul ca introduce div-ul suplimentar si mai mult ca sigur va trebui sa ajustezi cate ceva din CSS
Cred ca vrei sa folosesti AJAX pentru ca fiecare optiune din meniu iti aduce in celula 2 a tabelului2 informatii tot prin AJAX.
Daca ai realizat deja asta este greu sa modifici ca sa folosesti varianta sanatoasa (fara JS) a lui Birkoff, desi asa ar trebui facut.
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
oricum recomandarea mea este ca tot site-ul sa il faci ca sa iti functioneze ok si cu javascript disable (vezi cum ruleaza al meu cu js disable)
De ce? Pentru ca majoritatea robotilor de indexare nu stiu sa indexeze ce vine prin ajax/javascript deci automat ei cer paginile normal, iar daca nu le primesc automat nu au ce indexa (bad for seo)
De ce? Pentru ca majoritatea robotilor de indexare nu stiu sa indexeze ce vine prin ajax/javascript deci automat ei cer paginile normal, iar daca nu le primesc automat nu au ce indexa (bad for seo)
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Birkoff - site-ul face parte dintru-un proiect care va participa la o conferinta, de aceea vreau sa fie scris in descriere ca foloseste ajax
dechim - as vrea sa fac prima ta varianta, insa e cam neclar
Vreau sa incep asa :
<img src="img/ro.gif" onclick="changeLanguage('RO')"/>
<img src="img/en.gif" onclick="changeLanguage('EN')"/>
functia se acceseaza, si schimba o variabila din sesiune(daca se poate cu js)
variabila va contine t2a.php in cazul "RO" sau t2b.php in cazul "EN"
la mijloc, in loc de tabelul 2 va fi :
<div id="tabel2>
include("blocks/".$_SESSION['lang'].");
</div>
si se face un refresh numai' la div.
Nu stiu cum sa fac functia js cum trebuie si cum sa dau refresh
ajutor, va rog
dechim - as vrea sa fac prima ta varianta, insa e cam neclar
Vreau sa incep asa :
<img src="img/ro.gif" onclick="changeLanguage('RO')"/>
<img src="img/en.gif" onclick="changeLanguage('EN')"/>
functia se acceseaza, si schimba o variabila din sesiune(daca se poate cu js)
variabila va contine t2a.php in cazul "RO" sau t2b.php in cazul "EN"
la mijloc, in loc de tabelul 2 va fi :
<div id="tabel2>
include("blocks/".$_SESSION['lang'].");
</div>
si se face un refresh numai' la div.
Nu stiu cum sa fac functia js cum trebuie si cum sa dau refresh
ajutor, va rog
-
- Senior Member
- Mesaje: 1486
- Membru din: Mar Mai 10, 2005 11:53 pm
- Localitate: Drobeta Turnu Severin
Functia changeLanguage('RO') sau 'EN' trebuie sa fie o functie AJAX.
Ea va accesa asincron un script care citeste POST sau GET (in functie de cum trimiti) variabila si va incarca si intoarce catre browser ceea ce vrei.
Functia changeLanguage() va primi raspunsul si va pune continutul in pagina.
Nu se poate ca JS sa schimbe variabila de sesiune, cu JS se comunica numai cu serverul. Schimbarea o va face scriptul de pe server apelat de functie.
Daca tabel2 stanga incarca tabel2 dreapta prin AJAX ar trebui sa ai deja functiile.
Ea va accesa asincron un script care citeste POST sau GET (in functie de cum trimiti) variabila si va incarca si intoarce catre browser ceea ce vrei.
Functia changeLanguage() va primi raspunsul si va pune continutul in pagina.
Nu se poate ca JS sa schimbe variabila de sesiune, cu JS se comunica numai cu serverul. Schimbarea o va face scriptul de pe server apelat de functie.
Daca tabel2 stanga incarca tabel2 dreapta prin AJAX ar trebui sa ai deja functiile.
Înapoi la “Librarii Javascript”
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori