AJAX

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

AJAX

Mesajde Arein » Sâm Feb 12, 2011 11:57 pm

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. :(


Imagine

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Dum Feb 13, 2011 12:33 am

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ă
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.

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Dum Feb 13, 2011 2:03 am

Vrei sa incarci numai tabelul 2 cu cele doua coloane.
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.

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Dum Feb 13, 2011 3:22 am

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)
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.

Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Mesajde Arein » Dum Feb 13, 2011 12:11 pm

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
Imagine

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Dum Feb 13, 2011 11:10 pm

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.

Avatar utilizator
Arein
Junior Member
Mesaje: 31
Membru din: Mar Oct 19, 2010 10:13 pm
Localitate: Chisinau
Contact:

Mesajde Arein » Lun Feb 14, 2011 4:03 pm

am facut, multumesc pentru ajutor
Imagine


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori