[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 07.10.13
Príspevky: 63
Témy: 20 | 20
Bydlisko: Košice
NapísalOffline : 16.05.2009 18:38 | globalna a lokalna premenna

Zdravim, mam taky maly problem ktory som vsak nevyriesil resp. nerozumiem preco nefunguje...

V nizsom kode je premenna "nieco" nastavena na zaciatku funkcie na "false" v strede funkcie by sa do tejto premennej "nieco" mali zapisat data z volaneho php dokumentu... na konci premennej som zapisal obsah premennej nieco do DIVka no VZDY tam vypisuje false...

Chyba by mohla byt kdekolvek no zistil som ze je prave v tom, ze vo vnutri anonymnej funkcie sa ta premenna nieco sprava ako lokalna... ak som dal priamo do tej anonymnej funkcie napisat do DIVka obsah tej premennej tak to vykonalo.

Mozno sa spytate preco to nemozem dat do vnutra tej anonymnej funkcie... ja tam vsak nechcem dat vypisanie do DIVka ale chcem aby cela tato funkcia vracala hodnotu nieco.... co sa mi podari iba ak na jej konci dam "return nieco;" no ak sa tak stane tak mi vzdy vrati false

teda ako docielit aby som z tej anonymnej funkcie vycucol hodnotu premennej nieco a pouzil ju v nadradenej funkcii ziskajData? Tu je kod:

Kód:
function ziskajData(zdrojDat)
      {
      var nieco = false;
      var XMLHttpRequestObjekt = false;
      if (window.XMLHttpRequest) {
        XMLHttpRequestObjekt = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        XMLHttpRequestObjekt = new ActiveXObject("Microsoft.XMLHTTP");
      }
        if(XMLHttpRequestObjekt) {
          XMLHttpRequestObjekt.open("GET", zdrojDat);
          var nieco = false;
          XMLHttpRequestObjekt.onreadystatechange = function()
          {
            if (XMLHttpRequestObjekt.readyState == 4 &&
              XMLHttpRequestObjekt.status == 200) {
                nieco = XMLHttpRequestObjekt.responseText;
            }
            // document.getElementById('profil').innerHTML = nieco;
            // Ak by to bolo tu tak to funguje ale ja to chcem mat dole....
          }
          XMLHttpRequestObjekt.send(null);
        }
        document.getElementById('profil').innerHTML = nieco; // Ak je to tu tak to nefunguje
      }


Ako som sa docital tak v JavaScripte sa lokalne premenne oznacuju "var" no ja som to var ztamat zmazal a aj tak to nejde... vdaka za rady :)


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0
NapísalOffline : 16.05.2009 21:22 | globalna a lokalna premenna

Vymaž to druhé
Kód:
var nieco = false;


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 07.10.13
Príspevky: 63
Témy: 20 | 20
Bydlisko: Košice
Napísal autor témyOffline : 16.05.2009 21:30 | globalna a lokalna premenna

jaj to som zabudol zmazat pred uverejnenim tuto... to bolo testovanie zo zufalstva :lol:

správa sa to rovnako aj bez toho...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0
NapísalOffline : 17.05.2009 12:33 | globalna a lokalna premenna

Teraz sa ti síce tá premenná nastaví správne, problém je v tom, že to XMLHttpRequest volanie prebieha asynchrónne, takže v momente, keď sa pokúšaš pridávať obsah tej premennej do toho div, tá premenná obsahuje false (obsah premennej sa zmení až po tom, ako sa XMLHttpRequest ukončí).

Správne miesto na to nastavovanie obsahu div je práve to, ktoré nechceš použiť a ja netuším, čo ti na tom mieste vadí. ;) Je možné, že sa dá nastaviť, aby to volanie bolo synchrónne (teda ak si dobre spomínam), ale to spôsobí, že sa vykonávanie javascriptu zablokuje až do chvíle, keď sa skončí načítavanie (a to nie je dobrý nápad).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 07.10.13
Príspevky: 63
Témy: 20 | 20
Bydlisko: Košice
Napísal autor témyOffline : 17.05.2009 16:33 | globalna a lokalna premenna

no vadí mi tam to, že ten skript má vykonávať takú vec, že načíta výsledok PHP skriptu do premennej ktorú tá funkcia ziskajData vráti... čiže namiesto

Kód:
document.getElementById('profil').innerHTML = nieco;


si tam predstav

Kód:
return nieco;


Príklad:
Chcem súčin čísel 8 a 4. Funkcia bude volat "script.php?prvy=8&druhy=4". V scripte PHP sa vykona
Kód:
$sucin = $_GET['prvy'] * $_GET['druhy'];
echo $sucin;

Do premennej "nieco" si ulozim vysledok tohto volania a teda cislo 32. Na konci funkcie dam "return nieco;" a dalej tuto hodnotu mozem pouzivat v javascripte... Inak povedane nechcem vysledok tej funkcie hned niekde vypisovat do nejakeho DIVka ale dalej ho spracovavat v javascripte...

Cize tak jednoducho to podla toho asi nepojde. Skoda. Ale dik za informacie, aspon som mudrejsi, lebo tak by som este dlho nadaval kym by som to vzdal s tymto skriptom :D


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0
NapísalOffline : 17.05.2009 20:10 | globalna a lokalna premenna

Prečo by to nemalo byť jednoduché? Namiesto toho
Kód:
document.getElementById('profil').innerHTML = nieco;
tam dáš
Kód:
mega_funkcia(nieco);
(alebo niečo podobné) a v tej funkcii môžeš s tým textom robiť čo len chceš.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 07.10.13
Príspevky: 63
Témy: 20 | 20
Bydlisko: Košice
Napísal autor témyOffline : 17.05.2009 21:03 | globalna a lokalna premenna

ech... citim sa trapne :oops:

uz chapem, tak vdaka za pomoc :)


 [ Príspevkov: 7 ] 


globalna a lokalna premenna



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Lokalna siet a internet

v Siete

5

564

18.09.2007 9:37

Whistler

V tomto fóre nie sú ďalšie neprečítané témy.

Dá sa vytvorit lokálna sieť ?

v Sieťové a internetové programy

4

808

09.11.2010 22:02

Lukky

V tomto fóre nie sú ďalšie neprečítané témy.

lokalna bezdrotova siet - problem s pripojenim

v Siete

2

435

30.06.2009 11:42

rastino7

V tomto fóre nie sú ďalšie neprečítané témy.

premenna

v JavaScript, VBScript, Ajax

10

1018

31.07.2008 17:35

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

Premenná

v PHP, ASP

7

676

24.08.2008 16:15

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

OOP, premenna

v PHP, ASP

1

651

26.10.2009 21:44

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

Najväčia premenná

v PHP, ASP

8

480

16.02.2010 20:48

janik366

V tomto fóre nie sú ďalšie neprečítané témy.

PHP premenna

v PHP, ASP

17

775

27.09.2012 21:16

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Premenna (int)

v Assembler, C, C++, Pascal, Java

4

508

30.11.2010 12:54

capricorn7

V tomto fóre nie sú ďalšie neprečítané témy.

Realna premenna

v Delphi, Visual Basic

1

616

06.11.2009 21:36

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

premenna do iframe

v PHP, ASP

2

282

17.11.2013 11:11

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

premenna v Delphi

v Delphi, Visual Basic

1

1134

21.04.2009 18:00

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

TEXTAREA a premenna

v PHP, ASP

3

427

13.03.2008 10:35

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

premenna a switch

v PHP, ASP

2

439

07.01.2010 9:40

tyr

V tomto fóre nie sú ďalšie neprečítané témy.

premenna v url

v JavaScript, VBScript, Ajax

5

627

07.11.2009 11:50

johny694

V tomto fóre nie sú ďalšie neprečítané témy.

Nevyuzita premenna C

v Assembler, C, C++, Pascal, Java

7

541

05.04.2017 7:14

17mark



© 2005 - 2024 PCforum, edited by JanoF