php code invoegen in html
Ik zit met het volgende probleem:
In een ledensysteem wil ik bij het aanmelden (registreren) een aantal (fout)meldingen in een td cel laten zien.
In de php code gaat dit goed met:
maar met:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo "<form name='resendActivation' action='".$_SERVER['PHP_SELF']."' method='post'>
<table width='800'>
<tr>
<td colspan='3' height='50'> </td>
</tr>
<tr>
<td align='right'><b>Gebruikersnaam:</b></td>
<td><input type='text' size='20' name='username'></td>
<td width='400' valign='top' rowspan='2'><?php echo resultBlock($errors,$successes); ?></td>
</tr>
</table>
</form>";
?>
echo "<form name='resendActivation' action='".$_SERVER['PHP_SELF']."' method='post'>
<table width='800'>
<tr>
<td colspan='3' height='50'> </td>
</tr>
<tr>
<td align='right'><b>Gebruikersnaam:</b></td>
<td><input type='text' size='20' name='username'></td>
<td width='400' valign='top' rowspan='2'><?php echo resultBlock($errors,$successes); ?></td>
</tr>
</table>
</form>";
?>
niet.
Wat zie ik over het hoofd?
Gewijzigd op 11/02/2014 20:29:07 door Dirk Siersema
Kijk eens naar lijn 2, daar haal je de PHP-code netjes buiten je echo. Maar op lijn 11 gebruik je de PHP-tag terwijl je al in de PHP-modus zit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo "<form name='resendActivation' action='".$_SERVER['PHP_SELF']."' method='post'>
<table width='800'>
<tr>
<td colspan='3' height='50'> </td>
</tr>
<tr>
<td align='right'><b>Gebruikersnaam:</b></td>
<td><input type='text' size='20' name='username'></td>
<td width='400' valign='top' rowspan='2'>". resultBlock($errors,$successes). "</td>
</tr>
</table>
</form>";
?>
echo "<form name='resendActivation' action='".$_SERVER['PHP_SELF']."' method='post'>
<table width='800'>
<tr>
<td colspan='3' height='50'> </td>
</tr>
<tr>
<td align='right'><b>Gebruikersnaam:</b></td>
<td><input type='text' size='20' name='username'></td>
<td width='400' valign='top' rowspan='2'>". resultBlock($errors,$successes). "</td>
</tr>
</table>
</form>";
?>
Had de pagina nog niet vernieuwd, maar wat Aar zegt dus inderdaad :)
Gewijzigd op 11/02/2014 20:50:42 door D B
Echter de meldingen komen niet in de <td> terecht (heb er al een div omheen gezet).
Gewijzigd op 11/02/2014 21:04:38 door Dirk Siersema
Waar komen ze dan wel terrecht, en wat doet die resultBlock()-functie allemaal? Kan je daar wat van laten zien?
Zal even opzoeken wat resultBlock() doet.
Zal waarschijnlijk in de output van de function zitten :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
//Displays error and success messages
function resultBlock($errors,$successes){
//Error block
if(count($errors) > 0)
{
echo "<div id='error'>
<a href='#' onclick=\"showHide('error');\">[X]</a>
<ul>";
foreach($errors as $error)
{
echo "<li>".$error."</li>";
}
echo "</ul>";
echo "</div>";
}
//Success block
if(count($successes) > 0)
{
echo "<div id='success'>
<a href='#' onclick=\"showHide('success');\">[X]</a>
<ul>";
foreach($successes as $success)
{
echo "<li>".$success."</li>";
}
echo "</ul>";
echo "</div>";
}
}
?>
//Displays error and success messages
function resultBlock($errors,$successes){
//Error block
if(count($errors) > 0)
{
echo "<div id='error'>
<a href='#' onclick=\"showHide('error');\">[X]</a>
<ul>";
foreach($errors as $error)
{
echo "<li>".$error."</li>";
}
echo "</ul>";
echo "</div>";
}
//Success block
if(count($successes) > 0)
{
echo "<div id='success'>
<a href='#' onclick=\"showHide('success');\">[X]</a>
<ul>";
foreach($successes as $success)
{
echo "<li>".$success."</li>";
}
echo "</ul>";
echo "</div>";
}
}
?>
Moet een function niet een return geven ipv echo?
Ook met return lukt het maar deels, het kruisje blijft boven de table staan en er komt maar 1 melding in de <td>.
Verder wil ik je adviseren om de enkel- en dubbelquotes om te draaien, HTML vraagt om dubbelquotes.
dus b.v. echo'<div id="naam">';
ten slotte, gebruik geen inline opmaak voor HTML maar gebruik daarvoor een css document.