Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android

Recomandare bicicleta e-bike 20&#...
 Bing-Content removal tool

Nu pot accesa monitorulsv.ro de l...

Cum sa elimini urmele de acnee?

Wc Geberit
 Routere detinute in trecut si in ...

Teii din fața casei

E-Mail in serie prin Excel si Out...

Modul alimentare rulou/jaluzea ex...
 Recuperare fișiere dupa form...

Aplicatii stress test RAM

Asigurare auto hibrid

Asus B550M - PC-ul nu porneste di...
 

Cum pot afisa intr-un div singura valoare dintr-un fisier text, in javascript

- - - - -
  • Please log in to reply
7 replies to this topic

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
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
aloha2015

aloha2015

    Member

  • Grup: Validating
  • Posts: 341
  • Înscris: 26.12.2014
$('#num').load('cale_fisier', function() {   /* Aici citesti ce ti-a incarcat javascriptul in elementul cu id "num" */  });

#3
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
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... :D)

#4
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
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! Posted Image ); 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
Andrey77

Andrey77

    Member

  • Grup: Members
  • Posts: 688
  • Înscris: 22.12.2009
$("#codpom").load("folder/fisier.txt", function(){
	 var pom = $(this).text();
	 $(this).text("A" + pom);
});


Edited by Andrey77, 20 April 2015 - 22:32.


#6
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Multumesc Andrey77, a functionat! Era exact de ceea ce aveam nevoie. Sa traiesti o mie de ani!
Posted Image

PS. Se poate inchide!

#7
Andrey77

Andrey77

    Member

  • Grup: Members
  • Posts: 688
  • Înscris: 22.12.2009
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
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate