Failed opening 'datumdropdown.php' for inclusion (include_path='.') in
ik wil een php include in een pagina.
dit werkt perfect in de pagina zelf als ik onderstaande intype
maar als ik echter deze pagina in een Case functie steek waar ik al mijn html wil echoen
dan krijg ik de melding als in de titel
Failed opening 'datumdropdown.php' for inclusion (include_path='.')
wat doe ik mis?
Gewijzigd op 08/11/2015 23:12:34 door Chris Bosmans
What does that even mean :/
en ik wil deze tabel alleen laten zien als er een requirement is voldaan
zoiets als onderstaand
Code (php)
Gewijzigd op 08/11/2015 23:20:03 door chris Bosmans
Verder lijkt het mij zinvoller om een functie aan te maken in je datumdropdown.php die je dropdown-menu genereert. En dat je die functie aanroept in je echo. Dat lijkt me een stuk netter.
het zal goed zijn dat jouw functie aanroepen werkt- maar ik zou niet weten hoe dat werkt
ik vroeg me gewoon af waarom dit niet werkt?
omdat het op dezelfde pagina maar dan niet in de switch / case wel werkt
Die foutmelding vertelt meer dat hij in de huidige working-directory geen datumdropdown.php kan vinden.
Maar persoonlijk vind ik een eigen geschreven functie veel netter.
dat dacht ik ook maar blijf die error krijgen, en zou echt die datum drop down in die tabel moet hebben
dit is mijn datumdropdown.php
hoe zou ik dit dan in een functie moeten steken? heb hier geen verstand van
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
32
33
34
35
36
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
32
33
34
35
36
<?php
// De variabelen die gevuld worden zijn: $iDag, $iMaand en $iJaar
// Geef hier zelf de jaartallen die ingevuld mogen worden in de dropdown
$jaar = range( 2006, 2015 );
// Array met de namen van de maanden
$maand = array( "Januari", "Februari", "Maart", "April", "Mei", "Juni",
"Juli", "Augustus", "September", "Oktober", "November", "December");
// Dropdown voor de dagen
echo '<select name="iDag">';
for($i=1; $i<=31; $i++)
{
echo '<option value="' . $i . '">' . $i . '</option>';
}
echo '</select>';
// Dropdown voor de maanden
$count = count($maand);
echo '<select name="iMaand">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $i . '">' . $maand[$i-1] . '</option>';
}
echo '</select>';
// Dropdown voor de jaren
$count = count($jaar);
echo '<select name="iJaar">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $jaar[$i-1] . '">' . $jaar[$i-1] . '</option>';
}
echo '</select>';
?>
// De variabelen die gevuld worden zijn: $iDag, $iMaand en $iJaar
// Geef hier zelf de jaartallen die ingevuld mogen worden in de dropdown
$jaar = range( 2006, 2015 );
// Array met de namen van de maanden
$maand = array( "Januari", "Februari", "Maart", "April", "Mei", "Juni",
"Juli", "Augustus", "September", "Oktober", "November", "December");
// Dropdown voor de dagen
echo '<select name="iDag">';
for($i=1; $i<=31; $i++)
{
echo '<option value="' . $i . '">' . $i . '</option>';
}
echo '</select>';
// Dropdown voor de maanden
$count = count($maand);
echo '<select name="iMaand">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $i . '">' . $maand[$i-1] . '</option>';
}
echo '</select>';
// Dropdown voor de jaren
$count = count($jaar);
echo '<select name="iJaar">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $jaar[$i-1] . '">' . $jaar[$i-1] . '</option>';
}
echo '</select>';
?>
1) om classes of functies in te laden (zoals Aar al een beetje aangaf)
2) om de view ofwel template in te laden
In alle andere gevallen ( en zeker midden in een regel): bad practice!
Daarbij zijn includes erg confusing. Stel je de volgende directory structuur voor:
/index.php
/lib/config.php
/lib/functions.php
nu wil je config.php vanuit index.php inladen:
Maar nu wil je (stel dat) vanuit config.php functions.php includen:
Volgens mij één van de belangrijkste redenen om over te stappen op (een framework met) een frontcontroller
Gewijzigd op 08/11/2015 23:53:05 door Frank Nietbelangrijk
Voor nu lijkt het mij het beste om eerst een eigen functie aan te maken voor je dropdown-menu.
Zie daarvoor deze tutorial: http://www.tizag.com/phpT/phpfunctions.php
Het komt er dan op neer dat je dat je dus zo een structuur krijgt:
Let er dan wel op dat alles wat je in je functie echo'd, dat je dit dan in een variabele opslaat (bijv. $code), welke je aan het eind dan returned.
Code (php)
Als je ook zorgt dat je maar 1 of enkele scripts hebt (denk bijvoorbeeld aan index.php) die in dezelfde directory staan (EDIT: die als kapstok dienen om de rest van je includes aan op te hangen), dan kun je altijd alle andere onderdelen op dezelfde manier includen. Idealiter heb je "one point of entry" (index.php).
@Ariën
Als je een vast onderdeel in je site hebt zitten wat je maar 1x gebruikt in je hele layout, zou ik hier persoonlijk geen functie van maken. Een functie heeft pas een zekere meerwaarde als je deze meerdere keren (tegelijkertijd) gebruikt. Ik denk dat hier een include meer op zijn plaats is (pun intended :)).
@Frank
Een framework is wellicht een beetje overkill, je zou ook kunnen volstaan met een simpele autoloader.
Gewijzigd op 09/11/2015 09:13:40 door Thomas van den Heuvel
- landing bestanden -> de pagina waar een gebruiker op 'landt' zoals index.php about.php en contact.php
- libraries -> hierin schrijf je classes of functies
- configuratie -> hierin staat je database servername, username en wachtwoord en meer van dat soort zaken.
- templates -> hierin staat de HTML met wat php variabelen die ge-echo-ed worden.
Als je hier nu al eens over nagedacht hebt dan ben je volgens mij al een aardig eindje in de goede richting.
@Thomas: Natuurlijk is autoloading een geweldige tool maar ook deze is onbekend voor een PHP beginneling...
Frank Nietbelangrijk op 09/11/2015 09:22:38:
nagedacht
That's asking alot.
EDIT: @Frank wat je hierboven beschrijft, zo zou ik het ook aanpakken (functionele onderverdeling). Een beginneling moet gaandeweg zelf het nut hiervan inzien. In eerste instantie zijn vragenstellers hier ook niet vaak geïntereseerd in het "hoe" of het "waarom", maar alleen maar in het "wat", met andere woorden een directe (ad hoc) oplossing voor het probleem in kwestie.
Gewijzigd op 09/11/2015 09:41:12 door Thomas van den Heuvel
ik begrijp jullie punten allemaal
ik gebruik ook verschillende folders waar ik mijn scriptjes (die ik achteraf include), config, fotos bewaar
niet alles in 1 map.
voor het overzichtelijk te houden.
@thomas idd als je een probleem heb dan wil je ad hoc een oplossing of toch een punt waarop je verder kan bouwen.
ik probeer zo dadelijk de functie van Arien, ik heb met dit nog niet al te veel gewerkt.
en waarschijnlijk zullen er vele mogelijkheden zijn om dit op te lossen en als ik mijn totale code laat zien zal er ook veel commentaar ("hulp") op komen, maar iedereen heeft zijn werkwijze en probeert stilletjes aan te groeien in de code.
apprecieer de commentaar en we werken verder.
Gewijzigd op 09/11/2015 20:41:49 door chris Bosmans