PHP4U of bron hebben in een eerdere discussie gewaarschuwd, dat de HTML-validering (op basis van html5) niets van php snapt en dat ik de code moet leveren, die de browser ziet. Daar begrijp ik uit, dat ik uit mijn volledige code de php-gedeelten moet schrappen of hoe die gedeelten van de server-side terugkomen naar de browser-side.
Nu gaat het om twee php-gedeelten, die alleen printen (onder een bepaalde voorwaarde weliswaar). Als volgt:
Eerste voorbeeld
Code:
<table class="dbl36em">↩
<?php ↩
if ((!isset($_POST['ZamSubmit'])) && (!isset($_POST['intereuropSubmit']))) { ↩
print '↩
<tr>↩
<td class="ctrkopje" colspan="2">↩
<b>ĝermanaj lingvoj</b>↩
</td>↩
</tr> ↩
<tr>↩ enzovoort
</table>
Laat ik dit toch in deze vorm valideren, dan krijg ik als foutmelding:
Error: td start tag in table body.
From line 271, column 13; to line 272, column 45
<tr>↩ <td class="ctrkopje" colspan="2">↩
De php-code, die aan regel 271 voorafgaat is:
Code:
<?php
if ((!isset($_POST['ZamSubmit'])) && (!isset($_POST['intereuropSubmit']))) {
print '
Ik haal die weg en laat nu alleen valideren:
Code:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<table class="dbl36em">
<tr>
<td class="ctrkopje" colspan="2">
<b>germaanse talen</b>
</td>
</tr>
</table>
</body>
</html>
Dan krijg ik als foutmelding:
Code:
Error: [B]Table column 2 established by element td has no cells beginning in it.[/B]
From line 8, column 13; to line 9, column 45
<tr>↩ <td class="ctrkopje" colspan="2">↩
Kennelijk stuurt colspan="2" de boel in de war. Geen nood.
Ik wijzig de code als volgt:
Code:
<table class="dbl36em">
<?php
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<table class="dbl36em">
<tr>
<td>
</td>
<td class="ctrkopje">
<b>germaanse talen</b>
</td>
</tr>
</table>
</body>
(Daarvoor moet ik wel iets aan de style-klasse wijzigen, maar vooruit.)
Hoera! Goedgekeurd.
Ik probeer toch nog even de validering van de gewijzigde code ingebed in de php-code en krijg foutmelding:
Error: td start tag in table body.
From line 278, column 13; to line 279, column 16
<tr>↩ <td>↩
dezelfde foutmelding, waar ik mee begon.
Tussenvraag:
Was dat weghalan van colspan'="2" dus wel nodig?
Tweede voorbeeld:
Foutmelding van het gedeekte inclusief php-code luidt
Error: Misplaced non-space characters inside a table.
From line 374, column 14; to line 381, column 16
</tr> ↩ ';↩}↩ ↩if ((isset($_POST['ZamSubmit'])) && (!isset($_POST['intereuropSubmit']))) { ↩ if ($pI=="pt") { // ↩ print '↩ <tr>↩
Ik haal de php-code weg en valideer:
Code:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<table>
<tr>
<td class="d">
<button type="button" onclick="style=\'background-color: \' + klor; kreuGTfenro(\'it\');">
Muspremu ĉi tie por la itala (it)</button >
</td>
<td class="ctr">
<input type="radio" name="it" value="1" onclick="marku(\'it\',\'jes\')" />jes
<input type="radio" name="it" value="0" onclick="marku(\'it\',\'ne\')" />ne
</td>
</tr>
</table>
</body>
</html>
Resultaat: drie foutmeldingen. Dat ligt natuurlijk aan die escape-tekens, die alleen binnen een php-code betekenis hebben. Opnieuw gevalideerd en verd..... het is goedgekeurd.
Vraag: Hoe krijg ik op een directe manier de code, die de browser te zien krijgt, want door de vele tussenliggende php-codes heb ik zo heel veel werk.
(Als ik in AceHTML de external browser start en dan naar de broncode kijk, zie ik nog alle PHP-code.)
Sorry voor de lengte van de inleiding.