Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sivunvaihto erillisiin div-elementteihin

Sivun loppuun

kayttaja-7440 [28.04.2008 14:07:24]

#

Moi.
Oli tultava taas kysymään apua tyhmään pikkuongelmaan, kun ei itse millään keksi ratkaisua. Eli minulla on sivuillani kaksi div elementtiä ja kaksi valikkoa, valikosta1 haluaisin vaihtaa divin1 sisältöä, ja valikosta2 divin2 sisältöä.

Yhden valikon ja divin saan toimimaan helposti. Mutta en ymmärrä kuinka tuo toinen
valikko pitäisi rakentaa tuohon rinnalle?

Muuttujat alustan tähän tapaan:

if(isset($_GET["sivu"]) && $_GET["sivu"]!=""){
   $sivu=$_GET["sivu"];

   if($sivu==1){
	  $tiedosto="sivu1.html";

Linkki:

<a href="index.php?sivu=0">

Ja divin sisällä:

<?php
include_once("sivut/".$tiedosto);
?>

En saa toimimaan jos teen:

if(isset($_GET["sivu2"]) && $_GET["sivu2"]!=""){
   $sivu2=$_GET["sivu2"];

   if($sivu2==1){
	  $tiedosto2="sivu2.html";

//linkki2
<a href="index.php?s2=0">
//sisältö2
<?php
include_once("sivut/".$tiedosto);
?>

Voisiko joku ystävällisesti osoittaa suuntaa, kuinka tuo pitäisi rakentaa.

Puhveli [28.04.2008 14:34:12]

#

<a href="index.php?s=0">

Tuo pitäisi olla muodossa

<a href="index.php?sivu=0">

ja vastaavasti

<a href="index.php?s2=0">

->

<a href="index.php?sivu=2">

mikäli oikein ymmärsin tarkoiksesi

kayttaja-7440 [28.04.2008 15:00:21]

#

Kiitoksia, nopeasta vastauksesta. Tuo ensimmäinen neuvomasi korjaus on typo.
Rohkeasti jatkoin tuo koodini murjomista niin sain sen jopa toimimaan, huh. Hyvä näin.. Pahoitteluni turhan aiheen avaamisesta, minun puolestani tämän aiheen voi poistaa. Vaikkakin voisin nuo alustukset laittaa vähän nätimmin, kun ovat yksitellen:

 if($sivu==1){
      $tiedosto="sivu1.html";
....
 if($sivu==800){
      $tiedosto="sivu800.html";

Periaatteen tuohon siistimiseen voisin kurkata toisesta aiheesta, jossa sitä sivuttiin. Tämä linkittely ei vain heti alkuun auennut tuosta tiivistetystä koodista.

kayttaja-7440 [28.04.2008 16:50:46]

#

Äh, tulihan sittenkin ogelma, tätä tuossa aiemminkin mietin, mutta jotenkin sen sitten vain ignoretin.
Eli, linkkien pitäisi muodostaa urliksi ilmeisesti jotakin tällaista:

http://index.php?s=0&&s2=1

kun nyt tulee kutakuinkin tallainen

http://index.php?s=0
TAI
http://index.php?s2=1

riippuen toki siitä kumpaa linkkiä painaa.
Eli vielä saa osoittaa tietä miten saisin tämän toimimaan hyvin ja hienosti.
Ilmeisesti tuosta linkin (<a href="index.php?sivu=0"> ) index.php-kohdasta pitäisi saada jollakin tapaa dynaaminen, onnistuisikohan sen lukeminen suoraan selaimen osoiteriviltä?

tsuriga [28.04.2008 17:05:22]

#

&& -> &

kayttaja-7440 [30.04.2008 11:07:22]

#

Ok. Nyt jos vaihdan divin1 sisältöä, latautuu div2:n sisälle oletussivu. Mutta kuinka teen tuon linkityksen niin, että myös toisen divin sisältö säilyisi muistissa, kun vaihdan vain toisen divin sisältöä?

tsuriga [30.04.2008 14:56:29]

#

Tulostat linkkeihin sen nykyisen sisältövalinnan.

kayttaja-7440 [02.05.2008 10:19:24]

#

Mistä voin poimia nykyisen sisältövalinnan?

tsuriga [02.05.2008 12:32:42]

#

Eikös ne oo noita

$sivu2 = $_GET[ 'sivu2' ];

kayttaja-7440 [02.05.2008 13:27:32]

#

Kiitoksia pikkuhiljaa ehkä alkaa jotain ymmärtäänkin...
Tollasen tein mutta lopputulos ei ole aivan oikea.

Linkki:
<a href="<?php echo $_SERVER['PHP_SELF'].$s2=$_GET['s2']; ?>">linkki</a>
Osoitteeksi tulee:
http://index.php8
Vaikka pitäisi olla:
http://index.php?s2=8

Tyhmiähän tässä taas kysellään mutta en vain osaa liittää tuota valintaa.

Edit: aha, olis varmaa pitäny lisätä heittomerkeillä tuo toinen muuttuja.
Kiitoksia paljon \o/

Short Php [02.05.2008 13:38:17]

#

:)

<a href="<?php echo $_SERVER['PHP_SELF']."?s2=".$_GET['s2']; ?>">linkki</a>

Lebe80 [02.05.2008 14:46:22]

#

jos s2 on numero, niin sitten siivotaan siitä epäkelvot merkit pois.

<?php
// siivotaan aikaisemmin $_GET['s2']
$sivu2 = (int)$_GET['s2'];

// myöhemmin käytetään siivottua muuttujaa
?>

<a href="<?php echo $_SERVER['PHP_SELF']."?s2=".$sivu2; ?>">linkki</a>

tsuriga [02.05.2008 15:50:43]

#

$_SERVER[ 'PHP_SELF' ]

=>

$_SERVER[ 'SCRIPT_NAME' ]

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta