Variabele in functie
De url wordt bv: http://ww.... ..../index.php?pagina=agenda
Nu moet "nieuws.php" dus "agenda.php" worden... enz. enz.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$(function(){
var pagina_var = 'nieuws.php';
$('.contentmain').ajaxloader('load',{load: pagina_var, fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
});
var pagina_var = 'nieuws.php';
$('.contentmain').ajaxloader('load',{load: pagina_var, fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
});
Uiteraard kan je hem ook al meegeven in je functie, hoewel ik je functie definitie niet helemaal vat (waarom binnen een JQuery notatie?).
Maar... nu is pagina_var weer een vast gegeven, nl nieuws.php
Misschien is mijn vraag niet helemaal duidelijk.
Wanneer je nu op de button agenda klikt moet agenda.php geladen worden in de functie.
Nu heb ik @require('./'.$_GET['pagina'].".php"); in de div staan, maar wil dit vervangen door deze functie met opties als preloading image en fade etc. Snap je?
Dit werkt niet: var pagina_var = $pagina+'.php';
Gewijzigd op 12/01/2012 11:57:11 door Harry Hartman
Harry Hartman op 12/01/2012 11:30:03:
Omdat ajaxloader.1.5.1.js de jQuery vereist, volgens hun website, als je dat bedoeld?
Nee.... ik vraag me af waarom je het in een JQuery notatie doet terwijl je in JQuery ook gewoon normaal js functies kunt gebruiken. Dus gewoon die $() weglaten, werkt ook prima.
En als je dan gewoon een variabele meegeeft in die functie kan je op die manier de pagina meegeven die geladen moet worden:
Code (php)
1
2
3
4
5
2
3
4
5
function load_page(pagina_var){
$('.contentmain').ajaxloader('load',{load: pagina_var, fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
}
$('.contentmain').ajaxloader('load',{load: pagina_var, fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
}
En dat roep je gewoon aan vanuit de click handler van je button(s).
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$("#nieuws_button").click(function(){
load_page("nieuws.php")
});
$("#agenda_button").click(function(){
load_page("agenda.php")
});
load_page("nieuws.php")
});
$("#agenda_button").click(function(){
load_page("agenda.php")
});
etc etc
Gewijzigd op 12/01/2012 13:01:02 door Erwin H
Dus zou ik graag deze
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$(function(){
var pagina_var = 'nieuws.php';
$('.contentmain').ajaxloader('load',{load: pagina_var, fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
});
var pagina_var = 'nieuws.php';
$('.contentmain').ajaxloader('load',{load: pagina_var, fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
});
gebruiken maar dan dat pagina_var de variabele wordt uit de url .../index.php?pagina=nieuws
Kan dat?
Wat je wel kunt doen is die parameter in je php script in bijvoorbeeld een hidden input zetten en die input uitlezen in javascript. Zoiets als dit:
En dan in je script:
Waarbij je dus weer dezelfde functie kunt gebruiken met die variabele.
Ik heb het nu zo uitgevogeld en gedaan en het werkt!
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$(function(){
var pagina_var = '<?php echo htmlentities($_GET['pagina']); ?>';
$('.contentmain').ajaxloader('load',{load: pagina_var+'.php', fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
});
var pagina_var = '<?php echo htmlentities($_GET['pagina']); ?>';
$('.contentmain').ajaxloader('load',{load: pagina_var+'.php', fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
});
Gewijzigd op 12/01/2012 23:07:46 door Harry Hartman
1 - als je je javascript in een apart bestand wilt zetten lukt dat niet, want daar kan je die php parameters dan niet krijgen
2 - je functie is nu voor altijd gebonden aan wat er in php in wordt gezet. Je verliest dus de mogelijkheid om het nog met andere waardes te gebruiken.
Maar als dat allebei niet van toepassing is dan....
In aparte javascript-bestanden dan wel goed controleren, errors goed opvangen ...
Of je haalt data uit een ajax pagina met json gegevens, of een xml.
Mogelijkheden genoeg.
In het php script staat een stuk over welke pagina te laden:
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
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
<?php
.
.
.
if(!$_GET['pagina'])
{
include("homepage.php");
}
// Beveiliging...
elseif(strstr($pagina,"admins") || strstr($pagina,"index") || strstr($pagina,"..") || strstr($pagina,"http") || strstr($pagina,"https") || strstr($pagina,"www") || strstr($pagina,"_db") || strstr($pagina,"_js"))
{
include("error.php");
}
// Controle locale pagina's...
elseif(file_exists('./'.$_GET['pagina'].".php"))
{
//@require('./'.$_GET['pagina'].".php"); // oude situatie
?>
<div class="contentmain"></div>
<?php
}
else
{
include("onbekend.php");
}
.
.
.
?>
.
.
.
if(!$_GET['pagina'])
{
include("homepage.php");
}
// Beveiliging...
elseif(strstr($pagina,"admins") || strstr($pagina,"index") || strstr($pagina,"..") || strstr($pagina,"http") || strstr($pagina,"https") || strstr($pagina,"www") || strstr($pagina,"_db") || strstr($pagina,"_js"))
{
include("error.php");
}
// Controle locale pagina's...
elseif(file_exists('./'.$_GET['pagina'].".php"))
{
//@require('./'.$_GET['pagina'].".php"); // oude situatie
?>
<div class="contentmain"></div>
<?php
}
else
{
include("onbekend.php");
}
.
.
.
?>
Nu wil ik eigenlijk vanaf daar de functie aanroepen met de juiste pagina.
Hoe schrijf ik dat nu? en hoe wordt dan de aanpassing van de functie?
Gewijzigd op 13/01/2012 20:27:20 door Harry Hartman
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<head>
.
.
.
function load_Pagina(pagina_var){
$('.contentmain').ajaxloader('load',{load: pagina_var+'.php', fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
}
.
.
.
</head>
<body>
.
.
.
echo '<a href="javascript:load_Pagina(\''. $_GET['pagina'] .'\')">Laden pagina</a>';
.
.
.
</body>
.
.
.
function load_Pagina(pagina_var){
$('.contentmain').ajaxloader('load',{load: pagina_var+'.php', fadespeed: 'slow', readycallback: function(){
$('#kolom2-main-homepage').tinyscrollbar();
}});
}
.
.
.
</head>
<body>
.
.
.
echo '<a href="javascript:load_Pagina(\''. $_GET['pagina'] .'\')">Laden pagina</a>';
.
.
.
</body>
maar vervang je de regel door:
Code (php)
1
echo '<script language = "JavaScript">load_Pagina(\''. $_GET['pagina'] .'\')></script>';
dan is het... helaas... dit moet toch ook kunnen.