Avatar billede bremer Nybegynder
14. maj 2010 - 12:48 Der er 9 kommentarer og
1 løsning

Hvorfor bliver min href'en - overrule af mit onclick!?

Hej Venner,

Jeg sidder med en menu her, og vil gerne ha' den til at "aktiver" href'en - men mit onclick overrule denne fuktion, men den udskrives i html'en.

hvad skal der til så den kan bliv aktiv?!

MIN KODE;
--------------
<?php

$result_c = mysql_query("SELECT * FROM ft_content_menu WHERE active = 1 ORDER BY placering", $connection);
    if (!$result_c) {
        die("Database query failed: " . mysql_error());
}

while ($row_c = mysql_fetch_array($result_c)) {
  if ($page == $row_c["page"]) {
    $aktiv = "aktiv";
  } else {
    $aktiv = "";
  }

    print "<li><div class='headline padding'><a href='?page=".$row_c[page]."' onclick=\"Effect.ScrollTo( '".$row_c[scrollto]."');return false;\"><h1 class='".$aktiv."'>".$row_c[menu_navn]."</h1></a></div></li> \n";
}
    ?>
Avatar billede keysersoze Guru
14. maj 2010 - 12:51 #1
fjern din return false;
Avatar billede bremer Nybegynder
14. maj 2010 - 13:14 #2
jo, men så virker min funktion (Effect.ScrollTo) ikke :(
Avatar billede keysersoze Guru
14. maj 2010 - 13:26 #3
det skyldes formentlig dit sideskift - så er du i stedet nødt til at benytte bookmarks i din url; #bookmark
Avatar billede bremer Nybegynder
14. maj 2010 - 17:01 #4
@Keysersoze; det er sandt, det har jeg også prøvet, men også virker funktion ikke :(
Avatar billede keysersoze Guru
14. maj 2010 - 17:14 #5
så må du forklare hvad du egentlig forventer - javascriptet vil kun kunne fungere på den side det er affyret på og i og med at du skifter side vil du altså ikke se effekten. Da det lignede et forsøg på noget bookmarking var mit sidste forslag et alternativ uden javascript.

Hvis du vil have lige præcis dét javascript til at køre efter sideskift må du løse det ved fx at føre en parameter videre til næste side og så du ved at netop den funktion skal kaldes

pseudo-kode;

if variabel = noget then
  dit javascript
end if
Avatar billede bremer Nybegynder
14. maj 2010 - 19:38 #6
Lige mere præcis handler det om;


Jeg har en menu som indholder et href;
--- #?page=".$row_c[page]." ----

og et onClick med en scrollto funktion (Fra prototype);
--- onClick="Effect.ScrollTo('screen_1');return false;" ---

Min menu er en php kode med tilkobling til DB, via. $page tjekker jeg med


Min PHP-TJEK: Den tjekker i DB'en om request'en findes på URL'en
<?php $page = $_REQUEST['page']; ?>


Min menu i PHP:

<?php

$result_c = mysql_query("SELECT * FROM ft_content_menu WHERE active = 1 ORDER BY placering", $connection);
    if (!$result_c) {
        die("Database query failed: " . mysql_error());
}

while ($row_c = mysql_fetch_array($result_c)) {
  if ($page == $row_c["page"]) {
    $aktiv = "aktiv";
  } else {
    $aktiv = "";
  }

    print "<li><div class='headline padding'><a href='#?page=".$row_c[page]."'".$key_onclick."=\"Effect.ScrollTo( '".$row_c[scrollto]."')\"><h1 class='".$aktiv."'>".$row_c[menu_navn]."</h1></a></div></li>";
}
    ?>
-----------------------

Menuen og JavaScript, virker! - men jeg ønsker at det aktuelle menu punket skal være aktiv, i forhold til URL Via. $page tjek request.

Hvis jeg fjerner #, bliver menu aktiv, men så virker min funktion ikke :(
Avatar billede keysersoze Guru
14. maj 2010 - 21:53 #7
det gjorde mig desværre ikke så meget klogere - har ikke forstand på PHP. Men da javascriptet bliver aktiveret på den side det findes på og du skifter side så giver det hele mening at det ikke virker - derfor er du nødt til at opfinde en måde at få aktiveret scriptet på på den efterfølgende side, helt som min pseudo-kode.
Avatar billede RexReptiles Nybegynder
15. maj 2010 - 17:49 #8
den nemmeste måde at tjekke om noget er aktivt er med sessions.
du kan jo lave en $_SESSION['page'] = "din side";
på hver side.

og så hente det frem sådan.
Avatar billede haren Nybegynder
15. maj 2010 - 19:30 #9
Nu er jeg ingen Javascript-ekspert, men som jeg kender til Effect.ScrollTo(); forstår jeg desværre ikke hvilken effekt du ønsker. Kan du prøve at forklare det? Uanset hvad, erklærer jeg mig enig med keysersozes beskrivelse af hvorfor funktionen ikke virker.
Avatar billede keysersoze Guru
27. juni 2010 - 11:11 #10
Lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester