login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Php en html te samen gebruiken?

Offline rolandt - 08/12/2007 19:05
Avatar van rolandtNieuw lid Het volgende had moeten werken lijkt mij.

  1. <?php
  2. $pagina="page-0";
  3. $submenu="menu-1";
  4. echo ("De ingestelde pagina is ".$pagina);
  5. if ($pagina=="page-0") {
  6. <table>
  7. <tr>
  8. <td>if ($submenu=="menu-1") {echo'laten zien';}</td>
  9. </tr>
  10. <tr>
  11. <td>else {echo'onzichtbaar';}</td>
  12. </tr>
  13. </table>
  14. ;}
  15. else {echo'aan de voorwaarde is niet voldaan';}
  16. ?>


Omdat ik na de IF voorwaarde html code er in verwerk krijg ik een fout melding. Gebruik ik na de IF voorwaarde php code echo (zonder html er in) dan werkt het wel.
Html is dus de veroorzaker dat het niet werkt. Hoe krijg ik toch voor elkaar dat het toch werkt?

Groet,
Roland.


11 antwoorden

Gesponsorde links
Offline Godlord - 08/12/2007 19:10 (laatste wijziging 08/12/2007 19:10)
Avatar van Godlord PHP gevorderde Ik zou ten eerste eens fatsoenlijk PHP leren en scripts leren ordenen.

  1. <?php
  2. $pagina = "page-0";
  3. $submenu = "menu-1";
  4. echo ("De ingestelde pagina is ".$pagina);
  5. if ($pagina == "page-0") {
  6. echo '<table>';
  7. echo '<tr>';
  8. echo '<td>';
  9. if ($submenu == "menu-1") {
  10. echo'laten zien';
  11. }
  12. echo '</td>';
  13. echo '</tr>';
  14. echo '<tr>'
  15. echo '<td>'
  16. } else {
  17. echo'onzichtbaar';
  18. }
  19. echo '</td>';
  20. echo '</tr>';
  21. echo '</table>';
  22. } else {
  23. echo 'aan de voorwaarde is niet voldaan';
  24. }
  25. ?>


Van je code klopt natuurlijk ook niks, en dat zag je al als je het geordend had.
Offline Grayen - 08/12/2007 19:12 (laatste wijziging 08/12/2007 19:13)
Avatar van Grayen PHP ver gevorderde HTML is geen PHP. De PHP parser ziet in jouw geval tekens die hij niet verwacht. Daarom moet je PHP eerst sluiten voordat je html plaatst en vervolgens kun je hem weer openen. Je zou het ook kunnen echoën kijk maar eens naar PHP.net: echo

  1. <?php
  2. $pagina="page-0";
  3. $submenu="menu-1";
  4. echo ("De ingestelde pagina is ".$pagina);
  5. if ($pagina=="page-0") {
  6. ?>
  7. <table>
  8. <tr>
  9. <td><?php if ($submenu=="menu-1") {echo'laten zien';} ?></td>
  10. </tr>
  11. <tr>
  12. <td><?php else {echo'onzichtbaar';} ?></td>
  13. </tr>
  14. </table>
  15. <?php
  16. }
  17. else {echo'aan de voorwaarde is niet voldaan';}
  18. ?>
Offline Filip - 08/12/2007 19:13
Avatar van Filip IRC guru ofwel zet je HTML buiten de php (dus eerst je php afsluiten met ?> en als je terug enkel php gebruikt openen met <?php of <?) ofwel zoals godlord voorstelt met echo 'htmlcode'; werken.
Offline Godlord - 08/12/2007 19:14
Avatar van Godlord PHP gevorderde @Grayen: je vergeet een ding... 
Offline rolandt - 09/12/2007 15:03
Avatar van rolandt Nieuw lid
Godlord schreef:
Ik zou ten eerste eens fatsoenlijk PHP leren en scripts leren ordenen.

[..code..]

Van je code klopt natuurlijk ook niks, en dat zag je al als je het geordend had.


Hier klopt natuurlijk ook niet veel van. Afgezien dat er wat in regel 14 en 15 de ; is vergeten. Heb je ook nog eens te veel en op de verkeerde plaats de {}. gebruikt en neer gezet.

Misschien had jij hem zo bedoelt:
  1. <?php
  2. $pagina = "page-0";
  3. $submenu = "menu-1";
  4. echo ("De ingestelde pagina is ".$pagina);
  5. if ($pagina == "page-0") {
  6. echo '<table>';
  7. echo '<tr>';
  8. echo '<td>';
  9. if ($submenu == "menu-1") {
  10. echo'laten zien';
  11.  
  12. echo '</td>';
  13. echo '</tr>';
  14. echo '<tr>';
  15. echo '<td>';
  16. } else {
  17. echo'onzichtbaar';
  18. echo '</td>';
  19. echo '</tr>';
  20. echo '</table>';
  21. }
  22. } else {
  23. echo 'aan de voorwaarde is niet voldaan';
  24. }
  25. ?>


Je stijl van schrijven zit er wel overzichtelijker uit. Zal proberen hiermee meer rekening te houden. In ieders geval bedankt voor het mee denken.

Groet,
Roland.
Offline Godlord - 09/12/2007 15:16
Avatar van Godlord PHP gevorderde @rolandt: dat is niet mijn fout, ik heb enkel je code overzichtelijker gemaakt... En dat ik de ; wel eens vergeet moet je me niet kwalijk nemen. Ik ken meer dan PHP zoals Assembly, Visual Basic, BASIC,... waar ze ; niet gebruiken of als commentaar...
Offline rolandt - 09/12/2007 17:01
Avatar van rolandt Nieuw lid Het is je vergeven Godlord. Je hebt mij in iedersgeval weer op het juiste pad geholpen. Ik was even vergeten hoe de echo code gebruikt moest worden wanneer je html code gaat gebruiken.
Daarnaast was ik al blij dat ik de fout in de jouw overzichtelijk schrijfwijze er uit wist te halen.
Het klopt dat ik inderdaad dat ik nog niet veel kaas van php heb gegeten. Ben er ook nog niet zolang mee bezig. Het zelfde geldt trouwens ook voor CSS.
Doordat er veel relatief vrij nieuw voor mij is, gaat alles nog met hangen en wurgen. Dat ik hierdoor soms door het bos de juist boom niet meer herken zal nog weleens vaker voorkomen.
Maar goed daarvoor hebben wij dit forum toch, om elkaar weer op het juiste spoor te lijden.

Groet,
Roland.
Offline Wim - 09/12/2007 18:10
Avatar van Wim Crew algemeen je HTML code staat niet correct imo (van de tabel).

  1. <?php
  2. $pagina = "page-0";
  3. $submenu = "menu-1";
  4. echo ("De ingestelde pagina is ".$pagina);
  5. if ($pagina == "page-0") {
  6. echo '<table>';
  7. echo '<tr>';
  8. echo '<td>';
  9. if ($submenu == "menu-1") {
  10. echo'laten zien';
  11. } else {
  12. echo'onzichtbaar';
  13. }
  14. echo '</td>';
  15. echo '</tr>';
  16. echo '</table>';
  17.  
  18. } else {
  19. echo 'aan de voorwaarde is niet voldaan';
  20. }
  21. ?>


Zoiets lijkt me correcter.

@godlord: ik ken ook meer dan 1 taal waar geen ; wordt gebruikt, vanaf je een taal iets of wat beheerst pas je je toch automatisch naar de syntax van die taal aan, en heb je er toch geen problemen (meer) mee?
Offline Godlord - 09/12/2007 18:42 (laatste wijziging 09/12/2007 18:43)
Avatar van Godlord PHP gevorderde @wimmarien: niet volledig, vooral als je 2 à 3 talen(geen gewone zoals Nederlands maar programmeer- en scriptingtalen.) per dag gebruikt.

Assembly (Intel syntax):
  1. mov ah, 0x40
  2. mov ax, 0x20
  3. int 0x13

Wat deze code doet moet je me even niet vragen, maar dit is Assembly. Nou kon ik het ook hebben beëindigd met ; door C/C++/PHP terwijl dat dient voor commentaar. Gelukkig is dit nog niet zo erg in Assembly.

  1. ; dit is commentaar


In Visual Basic heb je bijvoorbeeld het volgende:

  1. Option Explicit
  2. Dim I As Integer
  3.  
  4. Private Sub Form_Load(...)
  5. I = 0
  6. Do While I < 20
  7. I = I + 1
  8. Loop
  9. End Sub


Als ik hier iets zou beëindigen met ; dan kon ik mooi fouten eruit gaan halen . En dat heb ik af en toe wel eens en dat krijg je juist als je veel verschillende talen kent met verschillende syntaxis. Want je hersenen concentreren zich niet volledig op de syntaxis. Maar ik heb wel zo'n soort automatisme, jammer genoeg werkt dat niet altijd even goed .
Offline timmie_loots - 09/12/2007 23:28
Avatar van timmie_loots PHP gevorderde Als je niet in staat bent die dingen uit elkaar te houden moet je er imho ook niet aan beginnen. Niet voor jezelf, en zéker niet om anderen te helpen. Aan een slechte oplossing heeft niemand iets.
Offline rolandt - 10/12/2007 00:39
Avatar van rolandt Nieuw lid Na de op en aanmerking heb ik er dit van gemaakt.
Waar ik zelf niet helemaal gelukkig mee ben is de IF functie waarin ik de ELSE functie leeg laat. (de code doet overigens wat ik er van verwacht.)
In dit voorbeeld kom ik er nog wel uit. Maar omdat dit een uittreksel is van een groter geheel, raak ik na verloop het spoor helemaal bijster waar de sluitende } moet komen.

Is hiervoor geen betere manier?

Groet,
Roland.

Plaatscode: 4397

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.258s