Autor | Zpráva | ||
---|---|---|---|
Erixx Profil |
#1 · Zasláno: 23. 9. 2010, 16:30:36 · Upravil/a: Erixx
Zdravim Vás.
nepomohl by mi prosím někdo vyřešit následující problém. Mám Jacascriptový kod, který rozbaluje SKRYTÉ MENU kliknutím na ODKAZ. Pokud dosadím název ODKAZU do JS kodu sám, vše funguje. Já bch ale potřeboval, aby se název ODKAZU includoval z PHP scriptu. Prosím o radu JS kod: <script type="text/javascript"> <!-- // po nactenim DOM $(document).ready(function() { var showText="ODKAZ"; var hideText="skrýt"; $(".test").before('<a href="#" class="testodkaz">'+showText+'</a>'); $('.test').hide(); $('a.testodkaz').click(function() { if ($(this).html()==showText) { // zobrazit $(this).html(hideText); $(this).next('.test').slideDown('slow'); } else { // skryt $(this).html(showText); $(this).next('.test').slideUp('slow'); } return false; }); }); //--> </script> <div class="test"> SKRYTÉ MENU </div> Místo pole ODKAZ bych potřeboval includovat následující PHP soubor: <?php do { require "db.php"; //výběr databaze $vysledek = MySQL_Query("SELECT * FROM ODKAZ ORDER BY id DESC"); //SQL příkaz if (!$vysledek): echo "Error"; break; endif; while ($data = MySQL_Fetch_Array($vysledek)){ echo " <a href='page.php?id=".$data[id]."'>".$data[ODKAZ]."</a> "; } } while (false); ?> nebo jen samotný soubor Include: <?php include "ODKAZ.PHP"; ?> Pokud dosadím tyto php soubory o JS místo pole ODKAZ, pak samotný JS nefunguje. Díky za radu |
||
Chamurappi Profil |
#2 · Zasláno: 23. 9. 2010, 16:35:44
Reaguji na Erixxe:
PHP se vykonává na serveru, JavaScript u klienta. Pro funkčnost JS je tedy rozhodující pouze výsledný kód — ten vypadá jak? |
||
Erixx Profil |
#3 · Zasláno: 23. 9. 2010, 16:43:35
Chamurappi:
<script type="text/javascript"> <!-- // po nactenim DOM $(document).ready(function() { var showText="<?php include "ODKAZ.PHP"; ?>"; var hideText="skrýt"; $(".test").before('<a href="#" class="testodkaz">'+showText+'</a>'); $('.test').hide(); $('a.testodkaz').click(function() { if ($(this).html()==showText) { // zobrazit $(this).html(hideText); $(this).next('.test').slideDown('slow'); } else { // skryt $(this).html(showText); $(this).next('.test').slideUp('slow'); } return false; }); }); //--> </script> <div class="test"> SKRYTÉ MENU </div> nebo <script type="text/javascript"> <!-- // po nactenim DOM $(document).ready(function() { var showText="<?php do { require "db.php"; //výběr databaze $vysledek = MySQL_Query("SELECT * FROM ODKAZ ORDER BY id DESC"); //SQL příkaz if (!$vysledek): echo "Error"; break; endif; while ($data = MySQL_Fetch_Array($vysledek)){ echo " <a href='page.php?id=".$data[id]."'>".$data[ODKAZ]."</a> "; } } while (false); ?>"; var hideText="skrýt"; $(".test").before('<a href="#" class="testodkaz">'+showText+'</a>'); $('.test').hide(); $('a.testodkaz').click(function() { if ($(this).html()==showText) { // zobrazit $(this).html(hideText); $(this).next('.test').slideDown('slow'); } else { // skryt $(this).html(showText); $(this).next('.test').slideUp('slow'); } return false; }); }); //--> </script> <div class="test"> SKRYTÉ MENU </div> Obě varianty nejsou funkční |
||
Chamurappi Profil |
#4 · Zasláno: 23. 9. 2010, 16:55:37
Reaguji na Erixxe:
Já se ptám, jak vypadá výsledný kód, který se načítá v prohlížeči. PHP mě nezajímá, to prohlížeč nevidí. |
||
Erixx Profil |
#5 · Zasláno: 23. 9. 2010, 17:03:35
Chamurappi:
Výsledný kod v prohlížeči je toto: <script language="javascript" type="text/javascript" src="jquery/jquery-zobrazskryj.js"></script> <script type="text/javascript"> <!-- // po nactenim DOM $(document).ready(function() { var showText=" Odkazy "; var hideText="skrýt"; $(".a").before('<a href="#" class="aodkaz">'+showText+'</a>'); $('.a').hide(); $('a.aodkaz').click(function() { if ($(this).html()==showText) { $(this).html(hideText); $(this).next('.a').slideDown('slow'); } else { // skryt $(this).html(showText); $(this).next('.a').slideUp('slow'); } return false; }); }); //--> </script> <div class="a"> SKRYTÝ ODKAZ </DIV> |
||
Erixx Profil |
#6 · Zasláno: 23. 9. 2010, 17:33:42
Problém je te, že includovaný PHP kod vloží do JS sice název odkazu, ale udělá před i za velké mezery a JS už to nenačte.
var showText=" Odkazy "; |
||
Chamurappi Profil |
#7 · Zasláno: 23. 9. 2010, 17:36:34
Reaguji na Erixxe:
Mezery nevadí, odřádkování vadí. Zbav se jich. |
||
Erixx Profil |
#8 · Zasláno: 23. 9. 2010, 18:07:51
Chamurappi:
Přesně tak, je to díky hornímu odřádkování, které dělá includovaný php kod a kterého se nemůžu zbavit , at zeštíhluji php kod jakkoliv. Poradte, proč tento php kod způsobuje takové odřádkování v JS. <? require "db.php"; $vysledek = MySQL_Query("SELECT * FROM odkzy ORDER BY id DESC"); while ($data = MySQL_Fetch_Array($vysledek)){ echo "".$data[nazev].""; } while (false); ?> |
||
Chamurappi Profil |
#9 · Zasláno: 23. 9. 2010, 18:12:17 · Upravil/a: Chamurappi
Reaguji na Erixxe:
Zřejmě posíláš na výstup odřádkování. Nic víc v tom PHP souboru nemáš? Žádné odřádkování na začátku? |
||
Erixx Profil |
#10 · Zasláno: 23. 9. 2010, 18:30:41
Chamurappi:
Ne nemám. Tohle je celý kod <script language="javascript" type="text/javascript" src="jquery/jquery-zobrazskryj.js"></script> <script type="text/javascript"> <!-- $(document).ready(function() { // nastaveni textu pro odkazy var showText="<? require "db.php"; $vysledek = MySQL_Query("SELECT * FROM odkazy ORDER BY id DESC"); while ($data = MySQL_Fetch_Array($vysledek)){ echo "".$data[nazev].""; } while (false); ?>"; var hideText="skrýt"; $(".test").before('<a href="#" class="testodkaz">'+showText+'</a>'); $('.test').hide(); $('a.testodkaz').click(function() { if ($(this).html()==showText) { $(this).html(hideText); $(this).next('.test').slideDown('slow'); } else { // skryt $(this).html(showText); $(this).next('.test').slideUp('slow'); } return false; }); }); //--> </script> <div class="test"> skrytý dkaz </div> a zdrojový kod, i když nemám nic nahráno v databázi vypisuje ve zdrojáku tohle i s nepochopitelným odřádkováním <script language="javascript" type="text/javascript" src="jquery/jquery-zobrazskryj.js"></script> <script type="text/javascript"> <!-- $(document).ready(function() { // nastaveni textu pro odkazy var showText=" "; var hideText="skrýt"; $(".test").before('<a href="#" class="testodkaz">'+showText+'</a>'); $('.test').hide(); $('a.testodkaz').click(function() { if ($(this).html()==showText) { $(this).html(hideText); $(this).next('.test').slideDown('slow'); } else { // skryt $(this).html(showText); $(this).next('.test').slideUp('slow'); } return false; }); }); //--> </script> <div class="test"> skrytý dkaz </div> |
||
Chamurappi Profil |
#11 · Zasláno: 23. 9. 2010, 19:51:06
Reaguji na Erixxe:
V db.php náhodou nemáš odřádkování?
|
||
Erixx Profil |
#12 · Zasláno: 23. 9. 2010, 20:08:55
Chamurappi:
Super postřeh, bylo to v db.php, to mě vůbec nenapadlo - už to šlape. Díky moc! |
||
Časová prodleva: 14 let
|
0