Toon posts:

[PHP] tekstblok maken met een class

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil het volgende maken:
code:
1
2
3
4
5
6
7
8
---------------------------------
| Titel             |
---------------------------------
|  Kopje            |
|   Tekst die bij kopje hoort   |
|  Kopje2           |
|   Tekst die bij kopje2 hoort  |
---------------------------------

Dit had ik bedacht:
PHP:
1
<?    class tekstblok {        var $naam;        var $kopjes = array();                function tekstblok($naam)        {            $this->naam = $naam;        }        function kopjetoevoegen($kopje)        {            $aantalkopjes = count($kopjes);            $this->kopjes[$aantalkopjes] = $kopje;            $aantalteksten = count($kopjes[$aantalkopjes]);            $this->kopjes[$aantalkopjes][$aantalteksten] = $tekst;        }        function tekstbijkopjezetten($nr,$tekst)        {            $this->kopjes[$nr] = $tekst;        }        function weergeven()        {            echo "<table border='0' bgcolor='#000000' cellpadding='0' cellspacing='1'>                      <tr>                        <td bgcolor='#89ACDC'>$this->naam</td>                    </tr>";            for ($i=0;$i<=count($this->kopjes);$i++)            {                echo "<tr>                        <td bgcolor='#CBDDF4'>&amp;nbsp&amp;nbsp;$this->kopjes[$i]</td>                      </tr>";                for ($x=0;$x<=count($this->kopjes[$i]);$x++)                {                    echo "<tr>                            <td bgcolor='#CBDDF4'>&amp;nbsp&amp;nbsp;$this->kopjes[$i][$x]</td>                          </tr>";                }            }            echo "</table>";        }    }?><body bgcolor='#EEF5FF'><?    $tekstblok1 = new tekstblok("tekstblok1");    $tekstblok1->kopjetoevoegen("Kopje");    $tekstblok1->tekstbijkopjezetten(0,"Tekst die bij kopje hoort");    $tekstblok1->weergeven();?></body>?>

Maar in plaats van de teksten zie ik alleen
Array[0]
Array[0][0]
Array[0][1]
Array[1]
Array[1][0]

:(

Iemand een idee wat ik fout doe ? of is het hele idee zoiezo al fout en moet ik het helemaal anders aanpakken ?

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

ik zou eerst je code eens netje zichtbaar maken (of ben je er nu mee bezig? :D )

ok, ja dus :)

*insert signature here


  • CyeZ
  • Registratie: September 2001
  • Laatst online: 02-09 13:14

CyeZ

Vroem vroem!!!

Pas even je php quote aan als je wilt, het is nu niet echt leesbaar.

edit:
Hehe, je had het zelf ook al door, net als de persoon die voor mij poste. Ik zal es kijken in ieder geval wat het is.

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


Verwijderd

Topicstarter
Op dinsdag 09 juli 2002 22:35 schreef TjarkVerhoeven het volgende:
ik zou eerst je code eens netje zichtbaar maken (of ben je er nu mee bezig? :D )

ok, ja dus :)
Ja ik wou hem editten en toen stond ineens alles achter elkaar :P

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

probeer voor de grap eens:
PHP:
1
<?echo "<tr>  <td bgcolor='#CBDDF4'>&amp;nbsp&amp;nbsp;".$this->kopjes[$i]."</td>  </tr>";?>

(zou eigenlijk niet moeten uitmaken toch?)

of
PHP:
1
<?echo '<tr>  <td bgcolor="#CBDDF4">&amp;nbsp&amp;nbsp;'.$this->kopjes[$i].'</td>  </tr>';?>

*insert signature here


Verwijderd

Topicstarter
Op dinsdag 09 juli 2002 22:40 schreef TjarkVerhoeven het volgende:
probeer voor de grap eens:
PHP:
1
<?echo "<tr>  <td bgcolor='#CBDDF4'>&amp;amp;nbsp&amp;amp;nbsp;".$this->kopjes[$i]."</td>  </tr>";?>

(zou eigenlijk niet moeten uitmaken toch?)
Nou, het wordt al beter *D

Nu zie ik dit:
Tekst die bij kopje hoort
T
e
Alleen geeft hij niet het hele woord weer ;(

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 02-09 12:24

Apache

amateur software devver

Zonder de $î ?

aangezien een string een array van chars is.

If it ain't broken it doesn't have enough features


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

het probleem is denk ik dat je 'zogenaamd'
code:
1
2
kopjes[0] = 'kopje'
kopjes[0][1] = 'tekst'

doet. Dat kan niet.

want als je
code:
1
kopjes[0] = 'kopje'

doet en je zou dan doen
PHP:
1
<?echo kopjes[0][2];?>

dan zal je uitvoer wel een o of een p zijn

verder: tis eigenlijk wel lelijk dat je in de array kopjes ook de teksten opslaat. volgens mij kun je 't beter en netter zo doen dat je een array hebt kopjes en een array teksten en dat de indices daarvan overeenkomen
code:
1
2
3
4
5
6
7
kopjes[0] -> 'kopje1'
teksten[0][0] -> ' 1e tekst van kopje 1'
teksten[0][1] -> ' 2e tekst van kopje 1'

kopjes[1] -> 'kopje2'
teksten[1][0] -> ' 1e tekst van kopje 2'
teksten[1][1] -> ' 2e tekst van kopje 2'

of viez:
code:
1
2
3
4
5
kopje[0][0] -> 'kopje'
kopje[0][1] -> 'tekst'
kopje[0][2] -> 'tekst'
kopje[1][0] -> 'kopje'
kopje[1][1] -> 'tekst'

*insert signature here


Verwijderd

Topicstarter
Oja ik denk dat ik hem al door heb

Eerst maar ik van $this->kopjes "Kopje"
en dan maak ik van $this->kopjes "Tekst die bij kopje hoort"
dus dan is Kopje weer weg.. zal ik toch iets anders moeten verzinnen..

Bedankt voor alle reacties! :)

  • CyeZ
  • Registratie: September 2001
  • Laatst online: 02-09 13:14

CyeZ

Vroem vroem!!!

Ik denk dat het fout gaat doordat je maar 1 array gebruik waarbij je zowel de tekst als het kopje in wilt opslaan.

Het kopje wordt dan eerst opgeslagen, en vervolgens wordt de tekst over dat kopje heen gezet.

Als je dan vervolgens door het loopje loopt krijg je eerst gewoon de tekst van het 'tekstje' te zien (waar het kopje hoort te staan). Daarna gaat ie de de tekens van het tekstje af, waardoor je eerst het 1e en dan het 2e teken van het tekstje krijgt.

edit:
Grr. TjarkVerhoeven moet weer iets eerder zijn. :'( ;)

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

sorry, m'n excuses :D


Nog een tip.
kijk eens naar array_push http://www.php.net/manual/en/function.array-push.php

*insert signature here


Verwijderd

Topicstarter
Jaaaa!! het werkt :)

Alleen nog even array_push erin zetten, dat ziet er handig uit :D

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

gerpju:
Jaaaa!! het werkt :)

Alleen nog even array_push erin zetten, dat ziet er handig uit :D
Vergeet deze niet:
code:
1
2
$a = array ();
$a [] = "blaat";

de operator []= zorgt voor hetzelfde als een array_push aanroep met 2 argumenten

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
En maak een nieuwe class,
1e = kopje_text (kopje, text)
2e = tekstblok (titel,array_van_kopje_text)


Da's ook leuk ;)

Verwijderd

Topicstarter
Op woensdag 10 juli 2002 09:13 schreef Nielsz het volgende:
En maak een nieuwe class,
1e = kopje_text (kopje, text)
2e = tekstblok (titel,array_van_kopje_text)


Da's ook leuk ;)
hehe een class in een class bedoel je ? dat was ik eerst wel van plan maar dat werd me net iets te ingewikkeld :P
Kan het vanavond wel proberen, ik zit nu op m'n werk :)
Pagina: 1