Autor Zpráva
valecekm
Profil
Zdravím všechny, kteří sem koukli :-).
Mám následující problém: Do kódu javascriptu potřebuji vypisovat za pomocí PHP různé údaje. Vyřešil jsem to tak, že stránka má příponu .php a v ní jsou náležité scripty, ale při volání samozřejmně to nevypadá takto:
<script type="text/javascript" language="JavaScript" src="script.js"></script> 

ale takto:
<script type="text/javascript" language="JavaScript" src="script.php"></script> 


Chtěl bych se vás zeptat, jestli je to hodně hrubá chyba a nebo ne. Samozřejmně že to funguje a jinak to ani asi já vyřešit nemůžu, ale pokud by někdo věděl jak a lepšejš, tak bych byl rád.
tiso
Profil
valecekm: rieši sa to tak, že JS ostane JS, a premenné sa vypíšu do HTML:
<script type="text/javascript" language="JavaScript" src="script.js"></script> 
<script type="text/javascript">
//sem vypis premenne pomocou PHP
</script>
valecekm
Profil
tiso
takhlenc to praveze mit nemuzu to je ten problem ;-)...kdybych to takto mohl mit, tak to tak mam. :-)

Protoze vepisovat do html zdrojace asi zhruba pres 450radku javascriptu je sebevrazda.
Chamurappi
Profil
Reaguji na valecekm:
Co je zač ten skript, že je v něm 450 řádků, které musí generovat PHP?
MythicalMe
Profil *
Proč by to měla být hrubá chyba? U stránek web 2.0, které mohou obsahovat i tisíce řádku JS, je to běžné řešení. Jenom nastavit Content-Type na application/x-javascript.

Vždyť ASP.NET to běžně používá - .axd soubory, které poskytují JS prohlížečí, jsou serverové handlery generující kód JS.
valecekm
Profil
Chamurappi
Hoooodně dlouhej javascript, kterej otevírá nová okna jako samostanej objekt v jednom již zmiňovaném tématu ohledně designu.
téma zde

Nejde oto co v něm je, ale oto jestli to tak může bejt.

pozn.: PHP negeneruje celej tento js, ale jen a pouze jeho části.
Chamurappi
Profil
Reaguji na MythicalMe:
Proč by to měla být hrubá chyba?
Není to hrubá chyba, ale obvykle není nutné, aby statická data servírovalo něco chytřejšího. Stejně tak se obvykle negenerují stylopisy serverovým skriptem.

Jenom nastavit Content-Type na application/x-javascript.
Není třeba.

Vždyť ASP.NET to běžně používá
Kód, který chrlí ASP.NET, bych jako vzor nikdy nedával.


Reaguji na valecekm:
Hoooodně dlouhej javascript
Musí ho celý generovat PHP?

oto jestli to tak může bejt
Může.
valecekm
Profil
ok díky chlapy ;-). Já už se lek, že zase dělám nějakou pták..vinu, která je jen můj výmysl a tudíž se to takto provádět nemá. Dík moc
Chamurappi
Profil
Reaguji na valecekm:
Ptákovina to skoro určitě je. Bude existovat čistější řešení. JavaScript je programovací jazyk, zná proměnné, zná funkce atd. — takže všechny vstupy můžeš prakticky vždy dostat na jedno místo a tohle (malé) místo protlačit do HTML.
tiso
Profil
valecekm: nie som si istý či si pochopil ako som to ja a Chamurappi myslel.
PHP by generovalo iba dynamicky sa meniace časti toho JS, časti ktoré sa nemenia by boli v tom externom skripte.
Ale bez konkrétnejšieho príkladu čo presne tam potrebuješ generovať a čo sa bude meniť sa nedá konkrétne poradiť...
valecekm
Profil
Chamurappi
NO asi už začínám přemejšlet na vyšší úrovni a začíná mě něco chytřejšího napadat ;-), takže dík že jsi mě teď nakopl tím správným směrem. Jdu skusit a pokusit se to tak teda udělat. Otázkou je jestli to vezme ten js ty proměnné(proměnné v javascripte), které tam samostatně do html propašuji a jim přidělím hodnotu zjištěnou pomocí PHP a nebo ne. Je to trošku složitejší ;-), ale uvidíme.
valecekm
Profil
Jooo. Jooo! :-D Bereto žer..to :-D. Uf, takže odkládám ruce od předešlého řešení a proměnné z PHP budu vměstnávat do proměnejch v JS samostatně v html. Teda díky moc, že jste mě nakopali tím správným směrem. Já jen budu teďka doufat, že to v tom dloooohým javascriptě někde nezaprotestuje. Ještě jednou dik.
valecekm
Profil
Dofám, že me zato neubijete, že jsem nezaložil nové téma, ale tento problém souvisí právě stím co jsme tu řešili, tak to píšu sem.
Proměnou sem použil na těch místech kde jsem potřeboval a všechno šlapalo, než sem došel na jeden zádrhel čehož sem se obával.
Lépe to vystihne asi příklad:

<script type="text/javascript">
button.setAttribute("title", "Minimalizovat")
</script>

Tak tento promlém sem vřešil nějak takto:

<script type="text/javascript">
jedna="Minimalizovat";
// část kódu
button.setAttribute("title", jedna)
//část kódu
</script>

Šlo o to předání hodnoty v proměnné jedna. Ale zádrhel nastal zde:
<script type="text/javascript">
// ...
if (/Minimalizovat/i.test(sourceobj.getAttribute("title")))
// ...
</script>

Jak sem se to pokusil vyřešit?:
<script type="text/javascript">
//...
if (Minimalizovat.test(sourceobj.getAttribute("title")))
//..
</script>

Nejde chyba a následné znefunkčnění. Skoušel jsem si hrát s různejma lomítkama kombinovat ruzně uvozovky i takto:
<script type="text/javascript">
//...
jedna="Minimalizovat";
jedna_p='/'+Minimalizovat+'/'; // skousel i dvojte uvozovky
//...
if (jedna_p.test(sourceobj.getAttribute("title"))) //pozn.: to "i" tam není podstatne co jsem teď vynechal i předtím
</script>

Prostě chyba jako .... Nevíte někdo jak to donutit aby se mi tam předala hodnota té proměnné a přitom to zůstalo funkční?
valecekm
Profil
pozn.:UŽ OPRAVENO A VYŘEŠENO, OMLOUVÁM SE.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: