Samengestelde afbeeldingen en script(s)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michiel Krijger

Michiel Krijger

24/05/2016 11:37:29
Quote Anchor link
Ben een groentje op dit vlak.

Is het mogelijk een om 3 afbeeldingen (afhankelijk van de variabele die wordt ingevoerd) door een script op een website te publiceren?
Bijvoorbeeld 3 auto's bij elkaar als de waarde 1 is, 2 auto's bij elkaar en 1 auto iets (zeg 3 cm) rechts van de 2 auto's als de waarde 2 is en de drie auto's los van elkaar, met een ruimte van 3cm er tussen als de waarde 3 is.
Is dit te realiseren met een script?
Welk script leent zich daar het best voor?

(Wil best literatuur hierover raadplegen en leren, maar wil wel weten wat ik dan het best kan kiezen :-) )
 
PHP hulp

PHP hulp

24/12/2024 02:35:27
 
Ramon van Dongen

Ramon van Dongen

24/05/2016 11:47:03
Quote Anchor link
Hallo Michiel,

Alles is mogelijk.
Ik denk dat je in deze richting moet denken:
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
<?php
$waarde
= 1; // die waarde zal ergens vandaan komen waarschijnlijk

if($waarde == 1){
echo '<img src="auto.jpg">';
echo '<img src="auto.jpg">';
echo '<img src="auto.jpg">';
}

elseif($waarde == 2){
echo '<img src="auto.jpg">';
echo '<img src="auto.jpg">';
echo '<img src="auto.jpg" style="margin-left: 20px;">';
}

elseif($waarde == 3){
echo '<img src="auto.jpg">';
echo '<img src="auto.jpg" style="margin-left: 20px;">';
echo '<img src="auto.jpg" style="margin-left: 20px;">';
}
?>
 
Michiel Krijger

Michiel Krijger

24/05/2016 11:50:44
Quote Anchor link
Dank je...
Dit is al een hele stap...

Die waarde wil ik op een afgeschermde sub pagina in geven.
Heb je idee hoe ik dat kan doen?

Jouw script komt op de home-page. (index.html)
Op een andere afgeschermde pagina (noem deze voor het gemak invoer.html) moet ik deze variabele in kunnen geven.
 
Ramon van Dongen

Ramon van Dongen

24/05/2016 11:55:07
Quote Anchor link
Allereerst zul je de homepage moeten wijzigen naar een php bestand. Het script is een php bestand en volgens mij ondersteunt een .html bestand normaalgesproken geen php scripts. Als je het dus opslaat als index.php zal het wel werken.

Als je de waarde ergens in wilt kunnen geven, moet je daarvoor een formulier maken in HTML.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form method="post">
<input type="text" name="waarde">
<input type="submit" value="In geven">
</form>


Maarrrr... daarna moet die waarde ergens opgeslagen worden. De meest gangbare manier is een MySQL database. Maar, niet lullig bedoeld, ik heb het idee dat je daar niet echt ervaring mee hebt. Klopt dat?
 
Michiel Krijger

Michiel Krijger

24/05/2016 12:05:09
Quote Anchor link
Heb idd weinig ervaring met MySQL.
Heb wel eens een website met Wordpress gemaakt...maar dan stopt het.

Zoals ik net al zei...wil me daarin best inlezen/leren...maar dan moet het wel zinnig/nuttig zijn. :-)
 
Ramon van Dongen

Ramon van Dongen

24/05/2016 12:11:10
Quote Anchor link
Het is natuurlijk erg interessant om wat te leren over databases, maar als het nu (en de komende tijd) alleen over 1 waarde gaat is dat wat zonde van je tijd.

Ook misschien wat overbodig om een hele database in te richten voor 1 getal, namelijk die waarde.
Het is daarom misschien 'makkelijker' om een textbestandje op je server/hosting te hebben staan waarin de waarde wordt geschreven.

Je hebt dus:
- index.php met het script om de plaatjes weer te geven
- invoer.php met:
--- het HTML formulier
--- een script om het formulier te verwerken en de waarde op te slaan

Om het niet helemaal voor te zeggen hoe het te doen:
- zoek eens op Google hoe je in php een formulier verwerkt
- kijk eens hoe je een waarde in een text bestand schrijft (http://www.w3schools.com/php/php_file_create.asp)
Gewijzigd op 24/05/2016 12:11:37 door Ramon van Dongen
 
Michiel Krijger

Michiel Krijger

24/05/2016 12:28:57
Quote Anchor link
Dank je...
Ik ga me storten in de boeken: "Basiscursus PHP 5" en "PHP kookboek"
Als ik er (onverhoopt) niet uit kom...neem ik contact met je op.
Oke?
Gewijzigd op 24/05/2016 12:37:48 door Michiel Krijger
 
Ramon van Dongen

Ramon van Dongen

24/05/2016 13:57:44
Quote Anchor link
Helemaal goed Michiel. Stel gerust je vragen hier op het forum.

Probeer gewoon eens wat dingetjes uit, daar leer je het meeste van.
 
Michiel Krijger

Michiel Krijger

25/05/2016 00:50:25
Quote Anchor link
Hoi....

Alles werkt...althans tot zover....
Nu is het zo dat wanneer ik via het bestand ren.htm de waarde en tijd1 en tijd2 invul, deze netjes worden overgenomen door renners1v.php
Maar....als een derde het bestand renners1v.php opent, ziet deze niet datgene wat ik heb ingevoerd.
Is het mogelijk dat de waarde die ik, als webmaster ingeef, statisch blijft staan voor de andere gebruikers, tot het moment dat ik de waarde en tijd1 en tijd2 heb veranderd?

Voor de volledigheid zal ik hieronder de inhoud van beide bestanden weergeven.

ren.htm ziet er als volgt uit:

<FORM METHOD="post" ACTION="rennersv1.php">
Waarde:<INPUT NAME="waarde" TYPE="text" VALUE="" /><BR />
Tijd 1: <INPUT NAME="tijd1" TYPE="text" VALUE="" /><BR />
Tijd 2: <INPUT NAME="tijd2" TYPE="text" VALUE="" /><BR />
<INPUT NAME="verzenden" TYPE="submit" VALUE="Verzenden" /><BR />
</FORM>

rennersv1.php is zo vorm gegeven.

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
$waarde
= $_POST['waarde'];
$tijd = "30 sec";
$tijd1 = $_POST['tijd1'];
$tijd2 = $_POST['tijd2'];

if($waarde == 1){
echo '<img src="bike4.png">';
echo '<img src="bike4.png">';
echo '<img src="bike4.png">';
}

elseif($waarde == 2){
echo '<img src="weg.png">';
echo '<img src="bike4.png" style="margin-left: -500px;">';
echo '<img src="bike4.png" style="margin-left: -90px;">';
echo $tijd1;
echo '<img src="bike4.png">';
echo $tijd2;
echo '<img src="bike4.png">';
}

elseif($waarde == 3){
echo '<img src="bike4.png">';
echo '<img src="bike4.png" style="margin-left: -90px;">';
echo $tijd;
echo '<img src="bike4.png">';
echo $tijd*3; echo "sec";
echo '<img src="bike4.png">';
}

elseif($waarde == 4){
echo '<img src="bike4.png">';
echo '<img src="bike4.png" style="margin-left: -90px;">';
echo $tijd;
echo '<img src="bike4.png">';
}

elseif($waarde == 5){
echo '<img src="weg.png">';
echo '<img src="bike4.png" style="margin-left: -500px;">';
echo '<img src="bike4.png" style="margin-left: -90px;">';
echo $tijd1;
echo '<img src="bike4.png">';
echo $tijd2;
echo '<img src="bike4.png">';
}

?>




let wel....ik ben pas net bezig hiermee ....
Gewijzigd op 25/05/2016 01:30:42 door Michiel Krijger
 
Marthijn Buijs

Marthijn Buijs

25/05/2016 08:11:46
Quote Anchor link
Ik kan al raden dat "30 seconden" x 3 (regel 26 niet gaat werken) gaat niet werken.
De $tijd variable moet je niet als een string defineren (zonder quotes), kortom:

Regel 3:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$tijd = 30;


Regel 26:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo $tijd * 3 . "sec";


Zoals je hierboven ziet, kan regel 26 ook nog ingekort worden.
 
Ramon van Dongen

Ramon van Dongen

25/05/2016 09:29:15
Quote Anchor link
Mooi dat je al een eind op weg bent!

Quote:
<FORM METHOD="post" ACTION="rennersv1.php">
Waarde:<INPUT NAME="waarde" TYPE="text" VALUE="" /><BR />
Tijd 1: <INPUT NAME="tijd1" TYPE="text" VALUE="" /><BR />
Tijd 2: <INPUT NAME="tijd2" TYPE="text" VALUE="" /><BR />
<INPUT NAME="verzenden" TYPE="submit" VALUE="Verzenden" /><BR />
</FORM>
Als value="" leeg is, mag je hem ook helemaal weglaten. Scheelt je weer typwerk.

Quote:
Maar....als een derde het bestand renners1v.php opent, ziet deze niet datgene wat ik heb ingevoerd.
Dat klopt! Op het moment dat jij het formulier verstuurt, worden de gegevens verstuurd naar pagina rennersv1.php. Dat komt door de 'ACTION="rennersv1.php".
Als iemand later op rennersv1.php komt, komt hij/zij daar zonder dat er op dat moment iets is verstuurd en is $_POST['waarde'] helemaal leeg.

Daarom zul je de waarde ergens op moeten slaan zoals eerder gezegd in een database (of anders in een textbestand).

Even uit de losse pols om je op weg te helpen, niet getest dus hopelijk werkt het:

Zet eens helemaal boven in rennersv1.php:
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' AND isset($_POST['waarde']) AND isset($_POST['tijd1']) AND isset($_POST['tijd2'])){

$bestand = fopen('textbestand.txt', 'w'); // bestand is ook anders te noemen uiteraard

// $_POST['waarde'] in $bestand zetten

fwrite($bestand, $_POST['waarde'];

// $_POST['tijd1'] in $bestand zetten
fwrite($bestand, $_POST['tijd1'];

// $_POST['tijd2'] in $bestand zetten
fwrite($bestand, $_POST['tijd2'];

// bestand sluiten (zie het als opslaan ofzo)
fclose($bestand);


}

?>


Vervolgens moet je elke keer dat rennersv1.php wordt geopenend, door wie dan ook, dat bestandje weer aanroepen om de gegevens op te halen en in $waarde, $tijd1 en $tijd2 te zetten. Snappie?

Dit vervangt dan jouw regel 2, 4 en 5;
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
<?php
// bestand openen
$bestand = fopen('textbestand.txt', 'r'); // of hoe je je bestand dan ook hebt genoemd

// regel voor regel verwerken

$i = 1;
while(!feof($bestand)){

    if($i == 1){
    $waarde = fgets($bestand);
    }

    elseif($i == 2){
    $tijd1 = fgets($bestand);
    }

    elseif($i == 2){
    $tijd2 = fgets($bestand);
    }

$i++;
}


// bestand sluiten (zie het als opslaan ofzo)
fclose($bestand);
?>



Toevoeging op 25/05/2016 09:31:42:

Probeer maar even, misschien niet helemaal foutloos, maar zoiets zou kunnen werken zonder database.
 
Michiel Krijger

Michiel Krijger

25/05/2016 11:20:49
Quote Anchor link
Ga ik zeker proberen.
Is het eenvoudiger met een database als MySql?
 
Ramon van Dongen

Ramon van Dongen

25/05/2016 13:36:35
Quote Anchor link
Ik raad je zeker aan om je eens te verdiepen in MySQL. Dit zou daar een goede oefening voor zijn.

Mat als het nu enkel gaat om 3 waardes op te slaan in totaal en je nul ervaring hebt met databases, is dit een mooie tussen oplossing.
 
Michiel Krijger

Michiel Krijger

26/05/2016 10:55:39
Quote Anchor link
Heb je een advies welk boek ik het beste kan gaan lezen?
Wetende wat ik graag wil leren (zie bovenstaande)

Op het gebied van PHP en MsQl zijn er nogal wat.
Moeilijk een keuze te maken voor me.
:-(
 
Randy vsf

Randy vsf

26/05/2016 11:04:38
Quote Anchor link
PHP Maarten op 25/05/2016 08:11:46:
Ik kan al raden dat "30 seconden" x 3 (regel 26 niet gaat werken) gaat niet werken.
De $tijd variable moet je niet als een string defineren (zonder quotes), kortom:


Klopt niet echt he. Het is misschien niet netjes, maar werkt wel...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$a
= '30 sec';
echo $a * 3; // Laat 90 zien zonder sec..
?>
Gewijzigd op 26/05/2016 11:05:52 door Randy vsf
 



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.