HTML

war4peace

Membru Senior
Joined
Dec 20, 2004
Location
Bucureşti
Sunt clei la HTML. Şi vreau să fac o chestie şi nu ştiu cum :frown:
Am 4 pagini HTML şi vreau să am o pagină "master" cu 4 link-uri în partea de sus şi un "frame" în care să se încarce una din cele 4 pagini, la apăsarea link-ului respectiv.
Sper că am fost suficient de coerent pentru ora 01:18 :smile:

LE... a, da, vreau s zic că m-am holbat pe aici, dar cam degeaba :frown:
 

sabertooth

Membru Senior
Joined
Aug 8, 2006
Location
mozolitic
Code:
<html>
<header>
<titlu>io-s gogu</title>
<script language="javascript">
function upd(v)
{
   var str = "";

   switch(v) {
       case 1:
           str = "cod html";
           break;
   }
   
    document.getElementById('dinamicPg').innerHTML = str;
}
</script>
</header>
<body>
<table cellpadding="5" cellspacing="5" border="0">
<tr><td><a href="javascript:upd(1)">link 1</a></td></tr>
<tr><td id="dinamicPg"></td></tr>
</body>
</html>
Se poate face si cu ageax, dar pentru ora 2 fara un sfert este destul de bine si asa.
 

war4peace

Membru Senior
Joined
Dec 20, 2004
Location
Bucureşti
Stai aşa, să priceapă ageamiul :smile:
"cod html" e chiar codul în sine? Dacă e aşa, nu merge, fiindcă paginile alea 4 nu sunt statice; se generează la fiecare 2-3 minute (sunt fişiere separate, gen 1.html, 2.html, 3.html, 4.html).
Sau nu ştiu eu să interpretez codul...
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Location
Unreal Estate, Ankh-Morpork, Discworld
În HTML de baltă, ce-ţi trebuie e să dai nume frame-urilor (frame-ul de jos să fie <frame name="blabla" ...>) iar în frame-ul de sus să pui link-urile cu proprietatea target (<a href="..." target="blabla">) şi atunci îţi va deschide link-ul în frame-ul numit blabla (de jos).

Exemple aici.
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Voi chiar trebuie neaparat sa scrieti un javascript pentru un nenorocit de frame?!

MAIN.HTM:
<html>
<head>
... </head>
<frameset rows="50,*">
Aici ajustezi tu marimile astfel incat sa arate cum trebuie.
<frame src="Menu.htm">
<frame src="
Adresa1.htm" name="Contents">
</frameset>
</html>


MENU.HTM:
<html>
<head>
... </head>
<body>
<table style="table-layout:fixed">
<tr>
<th><a href="
Adresa1.htm" target="Contents">Link1</a></th>
<th><a href="
Adresa2.htm" target="Contents">Link2</a></th>
<th><a href="
Adresa3.htm" target="Contents">Link3</a></th>
<th><a href="
Adresa4.htm" target="Contents">Link4</a></th>
</tr>
</table>
</body>
</html>

E clar?
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Location
Unreal Estate, Ankh-Morpork, Discworld
Bine spus, nenorocit. Ideea e că frame-urile sunt nasoale, pentru că nu poţi să faci uşor un bookmark sau să dai cuiva un link la o pagină dintr-un frame (mă rog, aici intră şi site-urile superdinamice şi care ţin datele de navigare pe sesiune, că aşa e "mai mevece"), pentru că pot ieşi nasol la imprimare sau pentru că nu sunt prea scalabile.
 

war4peace

Membru Senior
Joined
Dec 20, 2004
Location
Bucureşti
Bun, merge cu Javascript-ul, dar în titlurile fişierelor htm spaţiile apar înlocuite cu semne de întrebare... Habar n-am de ce...
Am să încerc şi varianta aia "nasoală" cu frames, fiindcă nu e nevoie de bookmark-uri decât pentru fişierul principal. De imprimare nu e nevoie, de scalare nu e nevoie, they only need to look at the graph. And that's it :smile:

LE: JS solution = epic failure. For whatever reason, pagina HTML se schimbă la click pe link, dar conţinutul... rămâne ăla de acum ţâşpe minute. Chiar dacă pagina are alt content. Obviously, refresh-ul nu merge, reîmprospătează doar pagina principală, ce e "încadrat" rămâne outdated :frown:
 

war4peace

Membru Senior
Joined
Dec 20, 2004
Location
Bucureşti
Marius, thanks a lot. Exact ceea ce îmi trebuia. Şi refresh, şi tot.
...un singur lucru mi-ar mai trebui... cum setez ca frame-ul curent (cel mare, nu cel cu meniul) să se refreshuiască singur every minute?
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Din cate stiu asta nu se poate face cu HTML. Trebuie sa umbli in scriptul care genereaza acea pagina afisata in frame si sa trimiti comanda respectiva in header-ul http.
 

sabertooth

Membru Senior
Joined
Aug 8, 2006
Location
mozolitic
Code:
<meta http-equiv="refresh" content="600">
Dar este posibil sa nu mearga.

Codul pe care ti l-am dat l-am testat sub un Apache si caile erau relative. Vad ca fara Apache este mai ciudat. In fine.
 

war4peace

Membru Senior
Joined
Dec 20, 2004
Location
Bucureşti
Hmm, din cauză că fişierele alea 4 sunt generate de Excel, e cam nasol să introduc acea linie de cod în ele. Mă rog, era "a good addition" dar nu e esenţial. Refresh-ul poate fi făcut şi de utilizator dând click pe link-ul respectiv.
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Ce optiuni exista pentru update-ul dinamic al unui formular pe o pagina web in functie de ce completeaza utilizatorul in el si continutul unei baze de date de pe server?

Explicatia lunga:
Am un formular pe o pagina web. Formularul contine printre altele, datele unei persoane. Vreau sa usurez completarea formularului in felul urmator: Dupa tastarea CNP-ului restul datelor personale sa apara automat in formular daca CNP-ul a fost gasit in baza de date.
Ce optiuni exista pentru chestia asta? Caut o metoda relativ directa. Ce am gasit pe net este AJAX, adica o imbarligatura XML impachetat in JS impachetat in PHP impachetat iar in JS impachetat la randul lui in HTML... :what:
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Location
Unreal Estate, Ankh-Morpork, Discworld
AJAX e simplu: prin javascript faci o cerere către server (care conţine CNP, de exemplu), ăla întoarce un XML (cu restul de date), pe care tu îl afişezi cum îţi place (cu javascript şi DOM). Faptul că ţi se pare îmbârligat e din cauza PHP-ului, care te lasă să scrii la grămadă, şi în majoritatea cazurilor nu ai separare clară între client side, server side şi comunicarea dintre ele (ce să mai zic de implementarea business-ului).

Da, AJAX este un hack, dar mai direct de-atât nu există. Ar trebui să-ţi placă, pentru că eşti obişnuit cu utilizarea tehnologiilor vechi pentru ceva nou (şi pentru care n-au fost făcute) :biggrin:.

Ca să nu te chinui cu prostii, caută o bibliotecă AJAX pentru PHP, care te scapă de partea de comunicare între client şi server, şi ce-ţi rămâne de făcut e să scrii partea de bază de date în PHP şi partea de afişare în javascript. Din păcate n-am folosit aşa ceva pentru PHP, aşa că nu-ţi pot recomanda una :frown:.
 

puterfixer

Administrator
Sugar daddy
Joined
Oct 30, 2003
Ăm, ceva n-ai înţeles tu bine din AJAX, şi anume tot :biggrin: Formularul HTML e legat de un script JavaScript ce rulează în browser. Pe măsură ce acţionezi asupra elementelor formularului, se declanşează evenimente care pornesc bucăţele de script JavaScript. Acestea fac interogări la server prin conexiuni separate HTTP, primind înapoi răspunsul cu rezultatele în format XML (în loc de HTML), şi apoi modifică elementele formularului pentru a include aceste rezultate.

De exemplu, când ai selectat o valoare dintr-un drop-down list pentru profesie, de exemplu, JS-ul prinde evenimentul şi întreabă serverul care ar fi valorile pentru un al doilea drop-down list cu specializări corespondente respectivei profesii. Lista acestor specializări vine într-un XML, pe care JavaScript-ul o parsează şi modifică dinamic proprietăţile celui de-al doilea drop-down pentru a pune aceste elemente în listă.

Opţiunile tale ar fi:
- să te limitezi la nişte JS-urile exclusiv pentru refresh al paginii pentru fiecare schimbare/selecţie de element, generând la fiecare încărcare opţiunile formularului prin PHP-uri de validare din spate (de exemplu, formularul tău conţine întâi doar lista de profesii, la schimbare ai un JS ce face submit automat, PHP-ul din spate vede că formularul e incomplet şi trimite înapoi câmpul de profesii + cel de specializări în funcţie de profesia aleasă, şi tot aşa până când tot formularul e completat);
- să faci ad labam un AJAX - complet nerecomandat, mai bine iei un kit AJAX şi-l implementezi, cum ar fi toolkit-ul Yahoo pentru webmasters;
- să foloseşti un framework sau tool de RAD pe ce platformă vrei tu - Visual Studio, Ruby on Rails, etc.;
- să foloseşti nişte produse care funcţionează împreună, cum ar fi Microsoft InfoPath împreună cu Microsoft SharePoint Server, care tehnologic se bazează pe AJAX doar că ascund toată partea programatică într-o aplicaţie intuitivă.
 
Top Bottom