Pagina 1 van 1

Gebruik van IFRAME in een MOD

Geplaatst: 07 mei 2004, 13:36
door Hans Kamp
napw.php, het volledige scherm, bevat:

Code: Selecteer alles

<iframe src="napw_res.php" name="res"></iframe>

<form action="napw_res.php" method="post" target="res">
<table>
	<tr>
		<td>Naam:</td>
		<td><input type="text" name="naam" value="" /></td>
	</tr>
	<tr>
		<td>Adres:</td>
		<td><input type="text" name="adres" value="" /></td>
	</tr>
	<tr>
		<td>Postcode:</td>
		<td><input type="text" name="postcode" value="" /></td>
	</tr>
	<tr>
		<td>Woonplaats:</td>
		<td><input type="text" name="woonplaats" value="" /></td>
	</tr>

</table>

<input type="submit" value="Voer in" />
</form>
En napw_res.php bevat:

Code: Selecteer alles

<?
	$naam = $HTTP_POST_VARS['naam'];
	$adres = $HTTP_POST_VARS['adres'];
	$postcode = $HTTP_POST_VARS['postcode'];
	$woonplaats = $HTTP_POST_VARS['woonplaats'];

	if ($naam != "" || $adres != "" || $postcode != "" || $woonplaats != "")
	{
		echo "Naam = $naam";
		echo "<br>";
		echo "Adres = $adres";
		echo "<br>";
		echo "Postcode = $postcode";
		echo "<br>";
		echo "Woonplaats = $woonplaats";
		echo "<br>";
	}
?>
Het is een zeer eenvoudig voorbeeld, maar ik heb in elk geval wel door hoe IFRAME werkt in geval van PHP.

Deze PHP-bestanden zijn nu zeer eenvoudig, bovendien hebben ze weinig met PHPBB te maken. Nu de vraag: Aan welke eisen moet het ge-IFRAME-de bestand voldoen (hier zou dat nap2_res.php zijn) voordat het in een IFRAME kan binnen PHPBB?

Geplaatst: 07 mei 2004, 14:20
door mosymuis
Ik begrijp de vraag niet echt.

Geplaatst: 07 mei 2004, 14:20
door Luuk
maakt niets uit, het moet alleen een "output" hebben, html codering ofzo dat je ziet.

Geplaatst: 07 mei 2004, 15:19
door Hans Kamp
mosymuis schreef:Ik begrijp de vraag niet echt.
Bij het schrijven van een PHPBB-scherm gebruik ik vaak een skelet, met bijv. de volgende code:

Code: Selecteer alles

define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

// standard session management 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 

// set page title 
$page_title = $lang['Index'];

// Sorry , only logged users ...
if ( !$userdata['session_logged_in'] )
{
	$redirect = "diablo2_playing.$phpEx";
	$redirect .= ( isset($user_id) ) ? '&user_id=' . $user_id : '';
	header('Location: ' . append_sid("login.$phpEx?redirect=$redirect", true));
}

// standard page header 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 
en

Code: Selecteer alles

$template->set_filenames(array( 
	'body' => 'diablo2_playing_body.tpl') 
); 

$template->pparse('body'); 

// standard page footer 
include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 

?>
Daar tussen programmeer ik datgene wat ik wil. Moet de bovenstaande code ook staan in napw_res.php als dat een IFRAME-onderdeel moet zijn van een PHPBB-scherm, op dezelfde wijze in "gewoon" PHP (zoals in het eerste bericht)?

Geplaatst: 07 mei 2004, 15:21
door mosymuis
Je kunt die pagina gewoon op dezelfde manier opbouwen, maar je doet er wel verstandig aan om dit vóór het laden van page_header.php te zetten;

Code: Selecteer alles

$gen_simple_header = TRUE;
Zo laadt phpBB simple_header.tpl & simple_footer.tpl boven en onderaan de pagina, in plaats van overall_header.tpl & overall_footer.tpl. ;)

Geplaatst: 07 mei 2004, 18:02
door Hans Kamp
mosymuis schreef:Je kunt die pagina gewoon op dezelfde manier opbouwen, maar je doet er wel verstandig aan om dit vóór het laden van page_header.php te zetten;

Code: Selecteer alles

$gen_simple_header = TRUE;
Zo laadt phpBB simple_header.tpl & simple_footer.tpl boven en onderaan de pagina, in plaats van overall_header.tpl & overall_footer.tpl. ;)
'

Aha, bedankt! Als er desondanks nog problemen zijn, dan hoor je dat nog van mij! :)

Geplaatst: 07 mei 2004, 19:55
door Hans Kamp
Het is grotendeels gelukt, maar ik heb een aantal vragen...

Ik heb het idee dat de communicatie van het scherm naar de ge-IFRAME-de URL slechts één kant op gaat. Laat ik het bovenstaande voorbeeld veranderen:

Code: Selecteer alles

<iframe src="napw_res.php" name="res"></iframe>

<form action="napw_res.php" method="post" target="res">
<table>
	<tr>
		<td>Naam:</td>
		<td><input type="text" name="naam" value="" /></td>
	</tr>
	<tr>
		<td>Adres:</td>
		<td><input type="text" name="adres" value="" /></td>
	</tr>
	<tr>
		<td>Postcode:</td>
		<td><input type="text" name="postcode" value="" /></td>
	</tr>
	<tr>
		<td>Woonplaats:</td>
		<td><input type="text" name="woonplaats" value="" /></td>
	</tr>

</table>

<input type="submit" value="Voer in" />
</form>

<table>
<tr>
	<td>Ingevoerde naam is: Naam</td>
</tr>
<tr>
	<td>Ingevoerd adres is: Adres</td>
</tr>
<tr>
	<td>Ingevoerd adres is: Postcode</td>
</tr>
<tr>
	<td>Ingevoerd adres is: Woonplaats</td>
</tr>
</table>
De bedoeling is dat in het onderstaande tabel de waarden worden veranderd nadat het PHP-bestand napw_res.php doorlopen is:

Code: Selecteer alles

<?
	$naam = $HTTP_POST_VARS['naam'];
	$adres = $HTTP_POST_VARS['adres'];
	$postcode = $HTTP_POST_VARS['postcode'];
	$woonplaats = $HTTP_POST_VARS['woonplaats'];

	if ($naam != "" || $adres != "" || $postcode != "" || $woonplaats != "")
	{
		echo "Naam = $naam";
		echo "<br>";
		echo "Adres = $adres";
		echo "<br>";
		echo "Postcode = $postcode";
		echo "<br>";
		echo "Woonplaats = $woonplaats";
		echo "<br>";

		// Hier moet de code komen die velden (in het onderstaande tabel) van het hoofdbestand napw_main.php moet veranderen.
		// De vraag is, hoe ik dat realiseer.
	}
?>

Geplaatst: 08 mei 2004, 08:30
door Hans Kamp
Ik ben er trouwens al uit... Maar ik denk dat het ingewikkeld wordt voor mijn specifieke toepassing:

napw_main.php:

Code: Selecteer alles

<iframe src="napw_res.php" name="res"></iframe>

<form action="napw_res.php" method="post" target="res">
<table>
	<tr>
		<td>Naam:</td>
		<td><input type="text" name="naam" value="" /></td>
	</tr>
	<tr>
		<td>Adres:</td>
		<td><input type="text" name="adres" value="" /></td>
	</tr>
	<tr>
		<td>Postcode:</td>
		<td><input type="text" name="postcode" value="" /></td>
	</tr>
	<tr>
		<td>Woonplaats:</td>
		<td><input type="text" name="woonplaats" value="" /></td>
	</tr>

</table>

<input type="submit" value="Voer in" />
</form>

<table>
<tr>
	<td>Ingevoerde naam is:</td>
	<td><span id="tnaam">Naam</span></td>
</tr>
<tr>
	<td>Ingevoerd adres is:</td>
	<td><span id="tadres">Adres</span></td>
</tr>
<tr>
	<td>Ingevoerde postcode is:</td>
	<td><span id="tpostcode">Postcode</span></td>
</tr>
<tr>
	<td>Ingevoerde woonplaats is:</td>
	<td><span id="twoonplaats">Woonplaats</span></td>
</tr>
</table>
napw_res.php:

Code: Selecteer alles

<?
	$naam = $HTTP_POST_VARS['naam'];
	$adres = $HTTP_POST_VARS['adres'];
	$postcode = $HTTP_POST_VARS['postcode'];
	$woonplaats = $HTTP_POST_VARS['woonplaats'];

	if ($naam != "" || $adres != "" || $postcode != "" || $woonplaats != "")
	{
		echo "Naam = $naam";
		echo "<br>";
		echo "Adres = $adres";
		echo "<br>";
		echo "Postcode = $postcode";
		echo "<br>";
		echo "Woonplaats = $woonplaats";
		echo "<br>";

		echo "<script>
			parent.document.getElementById('tnaam').innerHTML = \"$naam\";
			parent.document.getElementById('tadres').innerHTML = \"$adres\";
			parent.document.getElementById('tpostcode').innerHTML = \"$postcode\";
			parent.document.getElementById('twoonplaats').innerHTML = \"$woonplaats\";
		</script>";
	}
?>
</form>
Best ingewikkeld... PHP-code die JavaScript-code genereert...