Variabele in functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harry Hartman

Harry Hartman

12/01/2012 10:42:55
Quote Anchor link
Ik weet even niet hoe je van "nieuws.php" in het script een variabele maakt zodat de juiste pagina in de div wordt geladen.

De url wordt bv: http://ww.... ..../index.php?pagina=agenda

Nu moet "nieuws.php" dus "agenda.php" worden... enz. enz.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<script type="text/javascript">
$(function(){    
    $('.contentmain').ajaxloader('load',{load: 'nieuws.php', fadespeed: 'slow', readycallback: function(){
        $('#kolom2-main-homepage').tinyscrollbar();
    }});
});
 
PHP hulp

PHP hulp

22/12/2024 20:37:18
 
Erwin H

Erwin H

12/01/2012 10:51:29
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();
    }});
});

Uiteraard kan je hem ook al meegeven in je functie, hoewel ik je functie definitie niet helemaal vat (waarom binnen een JQuery notatie?).
 
Harry Hartman

Harry Hartman

12/01/2012 11:30:03
Quote Anchor link
Omdat ajaxloader.1.5.1.js de jQuery vereist, volgens hun website, als je dat bedoeld?

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
 
Erwin H

Erwin H

12/01/2012 13:00:40
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
function load_page(pagina_var){
    $('.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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$("#nieuws_button").click(function(){
  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
 
Harry Hartman

Harry Hartman

12/01/2012 20:53:30
Quote Anchor link
Op zich een goede oplossing maar ik bedenk mij dat niet alle aanvragen van pagina's van knoppen komen, ook uit nieuwsbrief links en redirects etc.

Dus zou ik graag deze
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();
    }});
});

gebruiken maar dan dat pagina_var de variabele wordt uit de url .../index.php?pagina=nieuws

Kan dat?
 
Erwin H

Erwin H

12/01/2012 23:03:27
Quote Anchor link
Volgens mij niet direct op die manier, in elk geval zou ik niet weten hoe je in javascript een GET parameter moet aanroepen (misschien iemand anders).

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="hidden" id="get_pagina" value="nieuws.php" />

En dan in je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$(document).ready(function(){
  load_page($("#get_pagina").val());
});

Waarbij je dus weer dezelfde functie kunt gebruiken met die variabele.
 
Harry Hartman

Harry Hartman

12/01/2012 23:06:26
Quote Anchor link
EDIT! had je antwoord nog niet gezien.

Ik heb het nu zo uitgevogeld en gedaan en het werkt!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();
    }});
});
Gewijzigd op 12/01/2012 23:07:46 door Harry Hartman
 
Erwin H

Erwin H

12/01/2012 23:12:27
Quote Anchor link
Zo kan het ook inderdaad. Twee reden waarom ik het niet zo zou doen zijn:
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....
 
Kris Peeters

Kris Peeters

13/01/2012 01:07:48
Quote Anchor link
Ik vind het niet verkeerd om op zo'n wijze data en settings te pompen in javascript.
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.
 
Harry Hartman

Harry Hartman

13/01/2012 20:25:13
Quote Anchor link
Hmmm, dacht ik toch echt dat ik er was maarrrr...

In het php script staat een stuk over welke pagina te laden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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
 
Harry Hartman

Harry Hartman

15/01/2012 14:24:29
Quote Anchor link
Met link laad de pagina wel, zonder (en dat is de bedoeling) helaas niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>

maar vervang je de regel door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo '<script language = "JavaScript">load_Pagina(\''. $_GET['pagina'] .'\')></script>';

dan is het... helaas... dit moet toch ook kunnen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.