Kleur instellen over de hele pagina(ook alle frames)

Status
Niet open voor verdere reacties.

KingShift

Gebruiker
Lid geworden
18 sep 2006
Berichten
185
Ik ben een net beginende PHPer en vind het erg leuk:)
maar ik kom er maar niet achter hoe ik in alle frames met het POST kan selecteren mijn bedoeling is als ik geel zeg dat de hele pagina geel word. dus ook de frames waar het post gedeelde nog niet in staat is dat het probleem? ik wil op een mainpage laat ik de frames in. Index1.php heb ik een frame genoemd die zich ook inlaad. maar hoe kan ik er voor zorgen dat index1.php nu ook dezelfde kleur krijgt als ik de kleur kies? in the frame bgkleur.php verandert de kleur wel die ik kies. ik hoop dat ik zo genoeg infomatie heb gegeven laat het anders even weten plz:) ik laat de code even zien die ik heb voor de frame die wel verandert. weet iemand wat ik kan doen??? alvast bedankt voor het kijken!!!

Dit is de code die ik tot nu toe heb

<?php
session_start();
if (!empty($_POST)){
$_SESSION["bgkleur"] =
$_POST["bgkleur"];
}
?>

<center><h2>kies een achtergrond kleur!!</h2>
<body bgcolor="#FFFFFF" bgcolor="<?php echo "".$_SESSION["bgkleur"]."" ?>">

<form name="bgkleur"method="POST"
action="<?php echo($_SERVER["PHP_SELF"]);?>">

<?php

if ($_SESSION["bgkleur"] == "FFFF00") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="FFFF00" <?php echo($extra);?>> geel
<?php

if ($_SESSION["bgkleur"] == "FF0000") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="FF0000" <?php echo($extra);?>> rood
<?php

if ($_SESSION["bgkleur"] == "00FF00") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="00FF00" <?php echo($extra);?>> groen
<?php

if ($_SESSION["bgkleur"] == "0000FF") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="0000FF" <?php echo($extra);?>> blauw
<?php

if ($_SESSION["bgkleur"] == "FFFFFF") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="FFFFFF" <?php echo($extra);?>> wit
<input type="submit" name="Submit" value="kleur instellen">
</center>
</form>
</body>
 
Laatst bewerkt:
Beste Kingshift,

Ik kom tot de volgende conclusie:
  • Je verandert in de input de kleur met een radio
  • bgkleur.php wordt herladen omdat de action="" naar zichzelf verwijst
  • de bgcolor van bgkleur.php verandert

De reden dat de bgcolor van index1.php niet verandert, is dat deze al is ingesteld (op de vorige kleur), en dit bestand niet weet dat je de session variabele hebt aangepast. Hiervoor moet je de pagina eerst refreshen (probeer na het veranderen van de bgcolor maar eens op F5 te drukken, dan zal de kleur wel veranderen).

Oplossing1: probeer als er op "kleur instellen" wordt gedrukt alle frames te herladen (ik kan je niet zo 1,2,3 de code geven... dan zal ff flink moeten spitten ;).
TIP: gebruik hiervoor een run-time scripting language als javascript.

Oplossing2: verander het hele script in javascript. Dat zal (volgens mij) in dit geval effectiever zijn. (maar ik kan me voorstellen dat je dat niet wilt)

Ik hoop dat je nu verder komt, anders post je je vragen maar weer :thumb:
Gr. Gerald
 
Beste Kingshift,

Ik kom tot de volgende conclusie:
  • Je verandert in de input de kleur met een radio
  • bgkleur.php wordt herladen omdat de action="" naar zichzelf verwijst
  • de bgcolor van bgkleur.php verandert

De reden dat de bgcolor van index1.php niet verandert, is dat deze al is ingesteld (op de vorige kleur), en dit bestand niet weet dat je de session variabele hebt aangepast. Hiervoor moet je de pagina eerst refreshen (probeer na het veranderen van de bgcolor maar eens op F5 te drukken, dan zal de kleur wel veranderen).

Oplossing1: probeer als er op "kleur instellen" wordt gedrukt alle frames te herladen (ik kan je niet zo 1,2,3 de code geven... dan zal ff flink moeten spitten ;).
TIP: gebruik hiervoor een run-time scripting language als javascript.

Oplossing2: verander het hele script in javascript. Dat zal (volgens mij) in dit geval effectiever zijn. (maar ik kan me voorstellen dat je dat niet wilt)

Ik hoop dat je nu verder komt, anders post je je vragen maar weer :thumb:
Gr. Gerald

beste ger@ld,

Als eerste wil ik je bedanken voor de tip van javascript.
dit was inderdaat een goede oplossing ik zal voor jou het stukje javascript hieronder neer zetten als je het leuk vind om er naar te kijken.
maar natuurlijk ook voor andere mensen die het wil gebruiken.
:thumb:
 
de oplossing

<?php
session_start();
if (!empty($_POST)){
$_SESSION["bgkleur"] =
$_POST["bgkleur"];
}
?>

<script>parent.index1.location.reload();</script>
<script>parent.mainframe.location.reload();</script>

<center><h2>kies een achtergrond kleur!!</h2>
<body bgcolor="<?php echo "".$_SESSION["bgkleur"]."" ?>">

<form name="bgkleur"method="POST"
action="<?php echo($_SERVER["PHP_SELF"]);?>">

<?php

if ($_SESSION["bgkleur"] == "FFFF00") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="FFFF00" <?php echo($extra);?>> geel
<?php

if ($_SESSION["bgkleur"] == "FF0000") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="FF0000" <?php echo($extra);?>> rood
<?php

if ($_SESSION["bgkleur"] == "00FF00") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="00FF00" <?php echo($extra);?>> groen
<?php

if ($_SESSION["bgkleur"] == "0000FF") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="0000FF" <?php echo($extra);?>> blauw
<?php

if ($_SESSION["bgkleur"] == "FFFFFF") {
$extra = "checked";
}
else {
$extra = "";
}
?>
<input type="radio" name="bgkleur" value="FFFFFF" <?php echo($extra);?>> wit
<input type="submit" name="Submit" value="kleur instellen">
</center>
</form>
</body>


Even voor de duidelijkheid normaal gesproken geef je altijd je fames een naam mijn namen zijn

index1.php name="index1"
mainframe.php name="mainframe"

name is hoe het frame heet ik hoop dat ik jullie zo kan helpen;) suc6 er mee en veel plezier:love:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan