Volání php fce javascriptem – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Volání php fce javascriptem – JavaScript, AJAX, jQuery – Fórum – Programujte.comVolání php fce javascriptem – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Roman
~ Anonymní uživatel
113 příspěvků
25. 9. 2011   #1
-
0
-

Dobrý den, potřeboval bych poradit, mám javascriptovou funkci, kterou volám stále dokola :

 

      function update() {
        var x=1;
        for(x=1; x<index; x++) {
          document.getElementById(x).innerHTML = "<?php ReadChat(); ?>";
        }
        _down = setTimeout('update()', 100);
      }

No a zde je kod, kde se volá ta PHP funkce

document.getElementById(x).innerHTML = "<?php ReadChat(); ?>";

A zde je PHP funkce

function ReadChat() {

          $soubor = fopen("Esesitari/test", "r");
          $radek = fgets($soubor);
          fclose($soubor);

          echo $radek;
        }

PHP fce čte ze soboru, No a hlavní problém je v tom, že když nestavovým pevně proměnou $radek, tak se nic neděje a tlačítko, kterým volám javascriptovou funkci nereaguje, Věděl by někdo jak na to ? Děkuji za každou odpověď.

Nahlásit jako SPAM
IP: 90.177.233.–
Reklama
Reklama
CZechBoY+4
Věrný člen
25. 9. 2011   #2
-
0
-

to přečte jen jeden řádek ne?

přečti ten soubor celej, tohle je na nic

např. funkce File_Get_Contents čte celej soubor najednou a vrátí to v poli

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
25. 9. 2011   #3
-
0
-

Ano, to přečtě, já vím, nejde mi o ostatní, v tomhle problém není, je v tom, že se nic netiskne, jen když dám že proměná $radek = "řádek"; tak pak mi ho vytiskne. Ale já potřebuji to co je v souboru a né to co napíšu do závorek, chápete ? :)

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
25. 9. 2011   #4
-
0
-

však to jsem taky měl na mysli

tak si zjisti co je obsahem $radek když "čteš ze souboru"

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
25. 9. 2011   #5
-
0
-

:) Já vím co je za obsah, ale ten obsah se mění :) Třeba jestli existují jiné metody na příkaz tisku na obrazovku, jako je třeba echo nebo tak :) Nevím, jestli mylímě oba stejný prblém :)

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
25. 9. 2011   #6
-
0
-

echo je jediná použitelná funkce na "tisknutí" textu

zkontroluj co ti vrací ta funkce, nevim co myslíš ty, ale píšeš že ti to nic nevypíše tak bude problém v tom čtení souboru

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
25. 9. 2011   #7
-
0
-

Aha :) No to ne, protože když v php zavolám funkci, tak je to dobré,

 function ReadChat() {

$soubor = fopen("Esesitari/test", "r");

$radek = fgets($soubor);

fclose($soubor);

echo $radek; }

ale když ji volám v javascriptu

document.getElementById(x).innerHTML = "<?php ReadChat(); ?>";

tak se bohužel nic neděje :/ Možné také je, že jí v javascriptu volám špatně, není například v tom problém ? :)

když je to ale volání v js

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
25. 9. 2011   #8
-
0
-

si otevři zdroják a mrkni se co to tam vypíše

Nahlásit jako SPAM
IP: 213.192.10.–
yetty
~ Redaktor
+5
Super člen
25. 9. 2011   #9
-
0
-

Musíš pochopit rozdíl mezi PHP a JavaScriptem. PHP je serverový jazyk - vykoná se na serveru, výstupem je nějaké HTML a to se pošle klientovi do prohlížeče.

Tam přistupuje na řadu JS. Takže pokud ty načteš pomocí PHP soubor jakoby v JS, načteš vlastně jenom obsah souboru. Jinak řečeno - ta PHP funkce se jednou zavolá na serveru, dosadí se za ní to, co vrátila a JS pak pracuje jenom s tím co dostane od serveru.

Pokud chceš načítat ze serveru, nastuduj si něco o technologii Ajax.

Nahlásit jako SPAM
IP: 90.180.203.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #10
-
0
-

:) Ano, to já chápu, ale je mi divné, že jde vytisknou na stránku například když zadám $radek = "LES"; tak to tiskne jak má, ale když zadám, že 

$soubor = fopen("Esesitari/test", "r"); 
$radek = fgets($soubor); 
fclose($soubor);

a pak echo $radek; tak se nic neděje, prostě se chová stejně, jako kdyby byla na javascriptu chyba, ano a ajaxu vím, nastuduji, kdyby nááhodou ;) někdo věděl jak tohle vyřešit ajaxem, budu  moooc rád. Děkuji

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
26. 9. 2011   #11
-
0
-

a když ten skript spustíš bez javascriptu tak to funguje?

pošli sem URL kde to máš uploadnutý, takhle tu můžem chodit kolem horký kaše třeba měsíc

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #12
-
0
-

Ahoj, bez něho je to plně funkční, tedy jako to čtení :) No url, je to celý web, jsou to stránky www.esesit.wz.cz a po registraci jděte na chat, no a tam to je :) Jsou možné někde chyby, protože stránky ještě nejsou dokončeny, ovšem nejde poslat pouze stránka, protože je hlídano, zdali je uživatel přihlášen, ale mohu sem hodit zdrojový kód.

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
26. 9. 2011   #13
-
0
-

tak to hoď někam vedle nebo mi pošli přihlašovací údaje

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #14
-
0
-

Dobře, celý kod je na teto adrese.

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
26. 9. 2011   #15
-
0
-

v PHP tam akorát napíšeš obsah souboru, potom tam máš ve funkci ReadChat return, ten ti nic nenapíše, jedině že bys dal echo ReadChat()

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #16
-
0
-

A omlouvám se :), ale bohužel i tak to nefunguje, Prostě jako kdyby se javascript zasekl. Stejně jako když napíšu nějakou javascriptovou blbinu :/ :)

Nahlásit jako SPAM
IP: 90.177.233.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #17
-
0
-

Pozměnil jsem ho, tak jak jsem to skusil, ale jak jsem psal, bohužel nic

Nahlásit jako SPAM
IP: 90.177.233.–
Nefaritus
~ Redaktor
+2
Posthunter
26. 9. 2011   #18
-
0
-

Podle me to tak ani volat nejde (treba se ale mylim), melo by se to udelat pres AJAX.

Nahlásit jako SPAM
IP: 147.251.53.–
CZechBoY+4
Věrný člen
26. 9. 2011   #19
-
0
-

to jo, ale obsah toho řádku to přeci vypsat musí i bez JS, to by musel mít vypnutý PHP aby to nevypsalo obsah souboru :D

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #20
-
0
-

No, já jsem něco hledal po netu, ale nic přesného jsem nenašel, možné jsem hledal špatně, ale mohl by mi tu někdo ukázat jak by se to dalo udělat ajaxem ? Myslím tedy jen volání té php funkce :) Děkuji :)

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
26. 9. 2011   #21
-
0
-
Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #22
-
0
-

Ano, normálně to funfuje, bez javascriptu, třeba když zavolám funkci v phpku, tak se tiskne co má, ale v tom javascriptu nic :)

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
26. 9. 2011   #23
-
0
-

četl si ten příklad AJAXu?

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #24
-
0
-

ááá :D ano četl jsem si, no ještě mám jeden problém, ale ten vyřeším jinka :) Ale to co jsem potřeboval, tak plně funguje, moooc děkuju, dám sem konečný soubor. www.esesit.wz.cz/try.txt no a vlastně udělal jsem externí php souborou s názvem chatting,php. Děkuji

Nahlásit jako SPAM
IP: 90.177.233.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #25
-
0
-

Mám ještě jeden dotaz, nikde ho ale nemužu najít, spíše nevím jak hledat, na javascript.
Jde o to, když volám getElementById tak volám po Id, nevíte někdo jak se volá pro třídu ?  Skoušel jsem getElementByClassName('className') ale to mi nefunguje :/

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
26. 9. 2011   #26
-
0
-

je toho hafo na internetu, proč nepoužít google?

document.getElementsByClassName = function(cl) {
 var retnode = [];
 var myclass = new RegExp('\b'+cl+'\b');
 var elem = this.getElementsByTagName('*');
 for (var i = 0; i < elem.length; i++) 
{
	 var classes = elem[i].className;
	 if (myclass.test(classes)) retnode.push(elem[i]);
 }
 return retnode;
};

nebo použít HTML5

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #27
-
0
-

Jo, ;) tohle jsem taky našel, ale mě šlo spíše jako o jeden řádek (příkaz) jako ve tvaru getElementByClassName nebo tak nějak, ale to nevadí :) Děkuji ;)

Nahlásit jako SPAM
IP: 90.177.233.–
CZechBoY+4
Věrný člen
26. 9. 2011   #28
-
0
-

tohle ti snad nefunguje když dáš document.getElementsByClassName("triiida")[0] ??

to jsem asi blbej nebo co, mě to funguje

Nahlásit jako SPAM
IP: 213.192.10.–
Roman
~ Anonymní uživatel
113 příspěvků
26. 9. 2011   #29
-
0
-

No ne ;) ale já jsem zapoměl napsat Elements a né element :D

Nahlásit jako SPAM
IP: 90.177.233.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý