2006-05-27, 00:02
  #1
Medlem
The Barrs avatar
Jag söker efter ett script som gör att man kan direkt via adressfältet kan gå till en vanlig ramad sida där huvudramens adress är variabel och kontrolleras av ett script.

Typ
HTML-kod:
www.minsida.se/script.php?mainframe=sida3.htm (eller nått)
som då öppnar sida3.htm i huvudramen.

Är ett sådant script möjligt?
Citera
2006-05-27, 00:17
  #2
Medlem
Marulks avatar
Citat:
Ursprungligen postat av The Barr
Jag söker efter ett script som gör att man kan direkt via adressfältet kan gå till en vanlig ramad sida där huvudramens adress är variabel och kontrolleras av ett script.

Typ
HTML-kod:
www.minsida.se/script.php?mainframe=sida3.htm (eller nått)
som då öppnar sida3.htm i huvudramen.

Är ett sådant script möjligt?

Det borde väl gå.
Nu kan jag inte php, men om du kör nåt liknande den här pseudokoden

hämta querystring
om inte tom
skriv ut javascript med serverscriptet


javascriptet som ska skrivas ut blir väl nåt liknande det här om man skulle köra det i asp/aspx
Kod:
Response.Write(<scriptlanguage="javascript">parent.framename.location=<%=strängnamnsominnehållersidan som ska laddas i huvudframen%>;</script>)
Citera
2006-05-27, 03:52
  #3
Medlem
Seagates avatar
Ja, självklart är det möjligt.

Exempelvis kan du göra det med PHP, och för att vara snäll med dig skall jag skriva en väldigt enkel, grundläggande funktion åt dig för detta syfte, som du själv gärna får komplettera genom att t.ex. kontrollera besökarens indata om du skulle vilja det.

Kod:
<?php
$framecode 
'<frame src="' $_GET['mainframe'] . '" />';
?>

... HTML-kod ...

<?php echo $framecode?>

... HTML-kod ...

Observera att jag personligen ogillar ramar, men jag skrev detta för att vara snäll med dig.

Har inte testat ovanstående kod, men det borde fungera.

// Farbror Seagate
Citera
2006-05-27, 12:52
  #4
Medlem
The Barrs avatar
Ah, skönt att det går att göra, jag frågade i ett annat forum och där fick jag ett annat svar.

Tack för php-koden farbror seagate. Att komplettera den blir nog ett bra nybörjarprojekt för mig, men nu är jag nöjd bara jag får upp den.

Hur ska jag göra med den ordinarie html-ordern om vilken sida som skall visas i main? Som det är nu visar den sidan som vanligt, vad jag än skriver in efter "script.php?".

Är det "/script.php?framecode=annansida.htm" som ska stå i adressfältet?

Nu se sidan ut såhär:

Kod:
<?php
$framecode 
'<frame src="' $_GET['main'] . '" />';
?>

<html>
<head>

    <?php echo $framecode?>

</head>

<frameset framespacing="0" border="0" frameborder="0" rows="80,*">
    <frame name="top" scrolling="no" noresize target="main" src="NYtop.htm" marginwidth="00" marginheight="0">
    <frameset cols="77,*">
        <frame name="left" target="main" src="NYvanster.htm" marginwidth="0" marginheight="0" scrolling="no" noresize>
        <frame name="main" src="mitt.htm" marginwidth="0" marginheight="0" scrolling="auto" target="_self">
    </frameset>
    <noframes>
    <body>
    
    

    <p>För att använda den här sidan måste du använda en browser som stödjer ramar</p>

    </body>
    </noframes>
</frameset>

</html>
Citera
2006-05-27, 16:38
  #5
Medlem
Quienas avatar
http://www.w3schools.com/php/php_intro.asp
Läs lite där så ser du varför det du har skrivit uppenbarligen är helt...
Speciellt
http://www.w3schools.com/php/php_get.asp
Citera
2006-05-27, 18:39
  #6
Medlem
Seagates avatar
Citat:
Ursprungligen postat av The Barr
Ah, skönt att det går att göra, jag frågade i ett annat forum och där fick jag ett annat svar.

Tack för php-koden farbror seagate. Att komplettera den blir nog ett bra nybörjarprojekt för mig, men nu är jag nöjd bara jag får upp den.

....


PHP echo ... har du placerat fel, resten stämmer.

PHP echo ... skall placeras där Du vill att framen skall synas. PHP echo ... kommer nämligen att bytas ut mot "<frame src ..." när koden exekverats.

Jag trodde det framgick ganska uppenbart ur den mycket enkla PHP-koden, men jag får väl göra det ännu tydligare

Kod:
..kod..

    <frameset cols="77,*">
        <frame name="left" target="main" src="NYvanster.htm" marginwidth="0" marginheight="0" scrolling="no" noresize>

    <?php echo $framecode?> 

    </frameset>

..kod..

Förresten; Varför har du valt target="main" på framen med namn left? Förstår inte riktigt logiken där.

Min kod var dessutom en förenkling och kan kompletteras på många sätt, exempelvis genom

Kod:
<?php
if (!isset($_GET['main'])) {
$framecode '<frame src="startsida.htm" />';
} else {
$framecode '<frame src="' $_GET['main'] . '" />';
}

?>

Återigen så har jag inte testat, men det borde fungera. Finns även fler sätt att komplettera på, genom att exempelvis preg_replacea otillåtna tecken.

// Farbror Seagate
Citera
2006-05-28, 02:17
  #7
Medlem
The Barrs avatar
Ah, härligt när det fungerar. Inte lätt för en som aldrig har skrivit ett ord php-kod själv att luska ut hur det ska vara, men när du säger det så var det ju väldigt logiskt det där, tänkte inte så långt.

Jag har för tillfället en meny model enkel i den vänstra ramen, det är därför målramen är huvudramen.

Tack för hjälpen
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in