Cum pot afisa intr-un div singura valoare dintr-un fisier text, in javascript
Last Updated: Apr 20 2015 23:42, Started by
colombo2003
, Apr 20 2015 13:59
·
0
#1
Posted 20 April 2015 - 13:59
Cum pot afisa intr-un div singura linie (si implicit singura valoare) dintr-un fisier .txt, in javascript?
Eu ma gandeam la ceva de genul: file = fopen("cale_fisier", 0); file_length = flength(file); content = fread(file, file_length); document.getElementById('num').innerHTML = content;dar nu imi functioneaza. Ce nu este bine? Cum pot sa fac? Multumesc LE: $('#num').load('cale_fisier', function() { window.onload(); }); functioneaza, dar doresc sa atribui numarului din fisier unei variabile si apoi cumva sa pot sa concatenez apoi aceasta valoare cu o alta (o litera specifica). Si ceea ce rezulta in final, sa fie ceva de genul A123. Edited by colombo2003, 20 April 2015 - 14:08. |
#2
Posted 20 April 2015 - 15:10
$('#num').load('cale_fisier', function() { /* Aici citesti ce ti-a incarcat javascriptul in elementul cu id "num" */ });
|
#3
Posted 20 April 2015 - 15:20
Si chestia asta (acest continut) pot sa il atribui unei variabile?
Pentur ca mai departe acest continut as vrea sa il concatenez cu o litera (de fapt litera sa fie chiar inante). Am mai vazut/gasit ceva... FileReader, dar e cam greu de "digerat" (e prea complicat... ) |
#4
Posted 20 April 2015 - 22:06
Hmm, ma invart in jurul cozii, dar tot nu reusesc. Sunt pe aproape cred, dar ceva nu e bine. Unde gresesc?
M-am gandit sa "afisez" (adica sa populez) - temporar- cu ceva (cu numarul fisierul txt) continutul div-ului, pe care mai apoi sa il preiau intr-o variabila si la final, noul continut al div-ului sa fie concatenare. Adica: ... ... $('#codpom').load('calefisier', function(){ window.onload(); }); var pom = document.getElementById('codpom').value; document.getElementById('codpom').innerHTML = 'A' + pom.value; }Numai ca nu merge (nu functioneaza), nici cu var nici fara var la pom (a se citi in termini informatici! ); nu merge nici cu pom.value nici cu pom simplu (in partea de concatenare). Nici cu ' ' si nici cu " ". Si nici cu .values, nici cu .innerHTML atunci cand preiau continutul div-ului in variabila pom. Deci? Edited by colombo2003, 20 April 2015 - 22:09. |
#5
Posted 20 April 2015 - 22:20
$("#codpom").load("folder/fisier.txt", function(){ var pom = $(this).text(); $(this).text("A" + pom); }); Edited by Andrey77, 20 April 2015 - 22:32. |
#6
Posted 20 April 2015 - 23:00
Multumesc Andrey77, a functionat! Era exact de ceea ce aveam nevoie. Sa traiesti o mie de ani!
PS. Se poate inchide! |
#7
Posted 20 April 2015 - 23:25
Dar nu te intereseaza sa vezi ce anume era gresit?
Habar nu am ce ai incercat tu sa faci cu acel `window.onload()` dubios. Nu poti sa chemi pur si simplu `window.onload`. Este vorba despre un event, iar in cel mai bun caz ai putea sa faci ceva de genul `window.onload = myFunction()`. Deci asta era o eroare. Apoi, daca tu vrei sa faci rost de textul/continutul unui element, nu te folosesti de proprietatea `value`. In cel mai bun caz te folosesti fix de `innerHTML`, pe care l-ai folosit si tu la un moment dat. In loc sa ii dai lui pom `value` de elementul respectiv, ii dadeau pur si simplu `innerHTML`-ul elementului respectiv. Iar mai apoi cand setai continutul lui codpom, nu adaugai pom.value (din nou pentru ca value e total altceva) dar nici pom.innerHTML. Adaugai peste 'A' pur si simplu `pom` asa cum e, deoarece `pom` in sine deja reprezinta `innerHTML`. Adica asa: var pom = document.getElementById('codpom').innerHTML; document.getElementById('codpom').innerHTML = 'A' + pom;Daca ai folosit jQuery mai sus, de ce sa nu profiti de el si aici? Eu nu am scris fix asa pentru ca m-am folosit direct de jQuery. Dar chiar daca nu ai fi avut greselile astea, tot nu ar fi mers neaparat. Pentru ca cel mai probabil, ar fi avut loc o desincronizare. Oricat de rapida ar fi incarcarea unui fisier, fie el local si mic, este putin probabil ca aceasta incarcare sa fie destul de rapida. Destul de rapida incat sa intreaca parsarea fisierului JS. Cel mai probabil, in momentul in care se ruleaza `load`, parsarea fiind atat de rapida trece imediat la celelalte linii timp in care `load` inca nu s-a terminat. Tu practic ai initiat doua modificari ale continutului lui `codpom`. O data prin cod cu `innerHTML` si o data prin acest `load`, dintre care e clar, dupa cum am mai spus, ca `load` va termina ultimul, cel mai greu. Deci orice s-ar intampla, `load` va avea mereu ultimul cuvant de spus si intotdeuna va pune in `codpom` continutul pur al fisierului, adica fara acel prefix. Deci ai fi ramas fara 'A'-ul acela, in cel mai bun caz. Tot ce pui in callback-ul de la `.load()` va fi rulat abia dupa ce load a avut succes. Asa ca in loc sa pui codul care depinde de incarcarea fisierului fix dupa `load`, il poti pune in acest callback al lui `load` astfel incat sa fie executat abia dupa acesta a avut succes. Nu abia dupa ce acesta a fost initiat, ci fix dupa ce acesta s-a si terminat, ca sa ne asiguram ca s-a incarcat ceva totusi. |
#8
Posted 20 April 2015 - 23:42
Desigur ca da (dar am zis sa nu intind coarda prea mult; caci unii care "fumeaza" deja demult chestiile astea (si deci li se par ceva firesc), nu vor sau nu (mai) au rabdarea sa invete scolareste si sa explice pe intelesul unora, cum e cu "roata si apa calda"si la un nivel mai basic asa...
Multumesc inca o data pentru aceste explicatii detaliate si si pe intelesul meu. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users