Toon posts:

[php] WordWrap en lees meer functie...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,


Ik heb een probleem.
Ik ben bezig met een site, de nieuwsberichten mogen maar rond de 150 tekens lang zijn en vanaf dat punt moet het worden afgebroken en daarvoor in de plaats moet dus " ... lees meer " komen.

Nu is me dit al gelukt alleen als ik op lees meer klikt op bijv het 2e nieuwsbericht, gaat het 1e bericht open. Ik kan dus alleen deze open en dicht klikken en de rest niet.
Ik gebruik de volgende code.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script language="JavaScript">

    function showhide_leesmeer() {
        
        document.getElementById('lees_meer').style.display = 'none';
        document.getElementById('whole_news').style.display = 'inline';
    }
    
    function showhide_news(){
        
            document.getElementById('whole_news').style.display = 'none';
            document.getElementById('lees_meer').style.display = 'inline';

    }   
    </script>


En hij wordt zo aangeroepen:
code:
1
2
3
4
5
6
7
8
<? 

if (strlen($nieuwssysteem["bericht"]) > 150) { 
        $nieuwssysteem["bericht"] = substr($nieuwssysteem["bericht"],0,150). '<span id="lees_meer">... <br><a href="javascript:showhide_leesmeer()">Lees Meer</a></span><span id="whole_news" style="display: none;">'.substr($nieuwssysteem["bericht"],150,strlen($nieuwssysteem["bericht"])).'<br /><a href="javascript:showhide_news()">Lees Minder</a></span>';
} 
echo $nieuwssysteem["bericht"];

?>


Deze tekst wordt dus 10 keer gebruikt omdat er 10 nieuwsberichten opstaan. Maar hoe krijg ik het nu zo werkend dat ik ook het 4e nieuwsbericht kan openen en sluiten zonder dat er een ander bericht mee in aanraking komt? :?

Alvast onwijs bedankt _/-\o_

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23:05
Je geeft nu de blokken voor verschillende messages hetzelfde id. Conceptueel klopt dat al niet, maar los daarvan is het nogal wiedes dat de browser niet weet wélk blok 'ie zichtbaar/onzichtbaar moet maken. Ik neem aan dat je dit zelf ook al bedacht had?

De oplossing ligt dan ook voor de hand: geef elk blok een écht unieke identifier (op basis van het id van het bericht in de database, bijvoorbeeld, of gewoon een volgnummer) en geef die identifiers mee als argument aan de functies die de pagina weergeven. Deze code kun je allemaal vanuit PHP genereren.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kan je me hier aub een goed voorbeeld van geven?
Hoe ik een ID meekrijg naar een javascript?

Acties:
  • 0 Henk 'm!

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 24-05 15:42
Je geeft nu 10 berichten/spans/elementen hetzelfde ID, namelijk "whole_news". Een id mag maar één keer voorkomen, dus pakt hij de eerste.

Kun je simpel verhelpen door ieder bericht een eigen id te geven, te weten whole_news_1 t/m whole_news_10 of zoiets.
Kun je met een simpel loopje doen. Waarschijnlijk haal je het nieuws op uit een database dus loopt er al een while(mysql_fetch_array(...)) loopje.

Edit: damn you Soultaker

[ Voor 5% gewijzigd door HyperioN op 16-02-2005 19:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
while($nieuwssysteem = mysql_fetch_array($nieuwssysteem_result)) {


Deze loopt nu! Maar hoe krijg ik het ID nummer in dat javascriptje?
Werkt dat wel? En dan nog Hoe krijg ik hem juist in de url van Lees meer...
Oké gewoon
<?php echo
$nieuwssysteem["datum"] ?> erin zetten dus :)..


Maar nu nog de juiste url

[ Voor 20% gewijzigd door Verwijderd op 16-02-2005 19:39 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23:05
Kun je je vraag iets minder chaotisch formuleren? Wat lukt er precies niet? Wat heb je al geprobeerd?

Weet je wel hoe PHP, HTML en JavaScript werken?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
<? 

if (strlen($nieuwssysteem["bericht"]) > 150) { 
        $nieuwssysteem["bericht"] = substr($nieuwssysteem["bericht"],0,150). '<span id="lees_meer">... <br><a href="javascript:showhide_leesmeer()">Lees Meer</a></span><span id="whole_news" style="display: none;">'.substr($nieuwssysteem["bericht"],150,strlen($nieuwssysteem["bericht"])).'<br /><a href="javascript:showhide_news()">Lees Minder</a></span>';
} 
echo $nieuwssysteem["bericht"];

?>



Zoals hierboven moet ik hem nu aanroepen maar nu moet ik er een ID aan toevoegen aan de
<span id="lees_meer">... maar als ik het zo doen
<span id="lees_meer<?php echo
$nieuwssysteem["titel"] ?>">... Lukt het niet.. Hoe moet ik hem aanroepen?

Acties:
  • 0 Henk 'm!

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 24-05 15:42
Nee je zit al in php dus je hoeft niet nog een keer <?php te openen.
Kijk trouwens ook even naar het gebruik van aanhalingstekens ' en "...je gooit dit kriskras door elkaar en je escaped niet.
En bedenk ook, dat als je dat id toevoegt, dat je die dan ook moet meegeven aan je javascript functie.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oké, het is me eindelijk gelukt!!

Na heel wat speurwerk en dankzij jullie hulp :*)


TOPIC CLOSED

[ Voor 95% gewijzigd door Verwijderd op 16-02-2005 20:41 ]

Pagina: 1