Post samen met Google API

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Hans Blancke

Hans Blancke

14/11/2010 14:42:17
Quote Anchor link
Hallo,

Ik ben bezig een formulier te maken wat zowel de “ normale” post afhandelt als de onsubmit="showLocation() die ik nodig heb ivm met het opvragen van kilometers via Google API. Ze staan hieronder allebei in het formulier maar dat werkt dus niet. Ik krijg of de variabel via post binnen of Googl API werkt goed. Hou krijg ik het beide werkend?

Wie kan me helpen?
Groet,

Hans

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
<body onload="initialize()">
<form method="POST" action="postcode.php" onsubmit="showLocation();  return false;">
<div>

<input id="postcode" type="text" name="address1" value="1326 NA"/><br />
<input type="hidden" name="address2" value="1118 AX" />

<label for="postcode">Vervoermiddel:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze -</option>
<option value="1" #VMselPA# >Personen auto max. 4 pers.</option>
<option value="2" #VMselB6# >Busje max. 6 pers.</option>
<option value="3" #VMselB8# >Busje max. 8 pers.</option>
</select>

<label for="postcode">Aantal personen:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze - </option>
<option value="1" #NrPers1# >1 passagiers</option>
<option value="2" #NrPers2# >2 passagiers</option>
<option value="3" #NrPers3# >3 passagiers</option>
<option value="4" #NrPers4# >4 passagiers</option>
<option value="5" #NrPers5# >5 passagiers</option>
<option value="6" #NrPers6# >6 passagiers</option>
<option value="7" #NrPers7# >7 passagiers</option>
<option value="8" #NrPers8# >8 passagiers</option>
</select>

<input name="submit" type="submit" value="Bereken Prijs" />
</div>
</form>
</body>
</html>


Voortaan even de code tags gebruiken [/modedit]
Gewijzigd op 14/11/2010 16:09:36 door Justin S
 
PHP hulp

PHP hulp

28/03/2024 11:04:21
 
Dalando De Zuil

Dalando De Zuil

14/11/2010 14:51:31
Quote Anchor link
Ik snap je vraag niet?
 
Hans Blancke

Hans Blancke

14/11/2010 15:12:39
Quote Anchor link
Ik heb method="POST"in mijn formulier gezet omdat ik dingen zoals vervoermiddel en aantal personen met post wil kunnen opvangen in php. Ik heb er ook onsubmit="showLocation();bij staan omdat daarboven een javascript staat die met Google API de kilometers dmv postcode ophaald. Deze twee dingen samen in een formulier willen dus bij mij niet werken. Als ik onsubmit="showLocation(); weghaal doet post het en andersom doet dat javascript het alleen, maar samen dus niet.

Gr. Hans
 
Justin S

Justin S

14/11/2010 16:11:43
Quote Anchor link
Je zat de javascript eerder moeten verzenden dan de serverside code. De serverside gaat voor javascript. Oftewel, je moet zorgen dat het aantal kilometers worden meegezonden naar de PHP kant. Probeer bijvoorbeeld het aantal kilometers te berekenen op het moment de postcode is ingevoerd, stop deze waarde direct in een hidden form field en stuur deze mee naar het verwerkscript :-).
 
Hans Blancke

Hans Blancke

14/11/2010 16:27:32
Quote Anchor link
Ik zou juist zeggen dat javascript voor de serversite gaat, want als dit zo staat :
<form method="POST" action="postcode.php" onsubmit="showLocation(); return false;"> werkt het javascript wel en post niet!?

Hans
 
Justin S

Justin S

14/11/2010 16:36:26
Quote Anchor link
Dat is omdat je je formulier nu een andere actie toekent. onSubmit veranderd de action van het formulier, dus hij voert dan je Serverside code niet uit.

Die onsubmit moet er dus uit, en dat moet je ondervangen door javascript al af te hebben gerond voordat de client op submit drukt.
 
Hans Blancke

Hans Blancke

14/11/2010 16:46:34
Quote Anchor link
Hoe kan ik trouwens wat meesturen naar een hidden form field wat het vervolgens weer doorstuurd. Kan je me een voorbeeld geven, wat moet ik bv achter value= neerzetten?

Gr. Hans
 
Justin S

Justin S

14/11/2010 16:54:57
Quote Anchor link
Hoe bereken je de kilometers? (plaats even heel je script)
 
Hans Blancke

Hans Blancke

14/11/2010 17:00:04
Quote Anchor link
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?php
session_start();
include ("/home/deb35110/domains/taxi2me.nl/public_html/resources/includes/verbinding.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link type="text/css" rel="stylesheet" href="style.css" media="screen" />
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAgV13-t4t3STpZlalXFAmzxQWUOUdy4en180hY4LdqgARW0NSBBR4VptnbNX5MzDRXExbmWRMpnIwGA" type="text/javascript"></script>
    <!-- According to the Google Maps API Terms of Service you are required display a Google map when using the Google Maps API. see: http://code.google.com/apis/maps/terms.html -->
    
</head>

<body>
<?php
$pkVervoermiddelId
= 1;
$ritSoortId = 2;

if($_SERVER["REQUEST_METHOD"] == "POST"){
$pkVervoermiddelId = $_POST["pkVervoermiddelId"];
echo $_POST["pkVervoermiddelId"];
}



if(!empty($_GET['km'])){
    
    
//if($_SERVER['REQUEST_METHOD'] == "POST"){

$km = $_GET['km'];
    $Adres1 = $_GET['adres1'];
    $Adres2 = $_GET['adres2'];
    $ritSoortId = 2;

    echo "De afstand is $km kilometer";


    
    $result = @mysql_query("SELECT * FROM `vervoermiddelPrijzen` WHERE fkVervoermiddelId = '$pkVervoermiddelId' AND fkRitSoort = '$ritSoortId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
            while($gegevens = @mysql_fetch_assoc($result))
            {

                if ($gegevens["kmVan"] <= $km){
                    if($gegevens["kmTot"] < $km)    $kilometers = $gegevens["kmTot"]-$gegevens["kmVan"];
                    else                            $kilometers = (($gegevens["kmVan"]-$km)*(-1))+1;
                    $ritPrijs += $gegevens["tariefInstap"] + ($gegevens["tariefKm"] * $kilometers);                
                    
            
            // Commissie ophalen (Vervoermiddel)
            $result2 = @mysql_query("SELECT * FROM `vervoermiddelen` WHERE pkVervoermiddelId = '$pkVervoermiddelId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
            $vervoermiddelPrijzen = @mysql_fetch_assoc($result2);
            
            // Ophalen van commissie per persoon
            if($vervoermiddelPrijzen["personenMin"] > $ritAantalPersonen)    $fkAantalPersonen = $vervoermiddelPrijzen["personenMin"];
            else                                                                                $fkAantalPersonen = $ritAantalPersonen;
            
            // Commissie van de chauffeur - afronden op 50 cent
            $commissieChauffeur = $ritPrijs * ($vervoermiddelPrijzen['commissie'.$fkAantalPersonen]/100);
            $commissieChauffeur = round(($commissieChauffeur * 2), 0) / 2;
            
            // Toeslag berekenen.
            //echo "<br>".$ritPrijs;
            //echo "<br>".$vervoermiddelPrijzen['toeslag'.$fkAantalPersonen]."%";

            $ritPrijs = $ritPrijs + (($ritPrijs/100)*$vervoermiddelPrijzen['toeslag'.$fkAantalPersonen]);
            $ritPrijs = round(($ritPrijs * 2), 0) / 2;
            echo "<br>De prijs is $ritPrijs Euro";

    }    }}

    //}

    ?>

<script type="text/javascript">
 
    var geocoder, location1, location2, gDir;
 
    function initialize() {
        geocoder = new GClientGeocoder();
        gDir = new GDirections();
        GEvent.addListener(gDir, "load", function() {
            
            var drivingDistanceKilometers = gDir.getDistance().meters / 1000;
            
                    
 km = Math.round(drivingDistanceKilometers + 0.5)         
            
if (km > 0 ) {
    window.location.href = "http://taxi2me.nl/ROUTE/postcode.php?km=" + km + "&adres1=" + location1.address  + "&adres2=" + location2.address;

}

            document.getElementById('results').innerHTML = '<strong>Address 1: </strong>' + location1.address + '<br /><strong>Address 2: </strong>' + location2.address + '<br /><strong>Afstand: </strong>'  + drivingDistanceKilometers + ' kilometers';
        });
    }
 
 
 
    function showLocation() {
        geocoder.getLocations(document.forms[0].address1.value, function (response) {
            if (!response || response.Status.code != 200)
            {
                alert("Sorry, we were unable to geocode the first address");
            }
            else
            {
                location1 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
                geocoder.getLocations(document.forms[0].address2.value, function (response) {
                    if (!response || response.Status.code != 200)
                    {
                        alert("Sorry, we were unable to geocode the second address");
                    }
                    else
                    {
                        location2 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
                        gDir.load('from: ' + location1.address + ' to: ' + location2.address);
                    }
                });
            }
        });
    }
 
</script>

<body onload="initialize()">
<form method="POST" action="postcode.php" onsubmit="showLocation();  return false;">
<div>

<input id="postcode" type="text" name="address1" value="1326 NA"/><br />
<input type="hidden" name="address2" value="1118 AX" />

<label for="postcode">Vervoermiddel:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze -</option>
<option value="1" #VMselPA# >Personen auto max. 4 pers.</option>
<option value="2" #VMselB6# >Busje max. 6 pers.</option>
<option value="3" #VMselB8# >Busje max. 8 pers.</option>
</select>

<label for="postcode">Aantal personen:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze - </option>
<option value="1" #NrPers1# >1 passagiers</option>
<option value="2" #NrPers2# >2 passagiers</option>
<option value="3" #NrPers3# >3 passagiers</option>
<option value="4" #NrPers4# >4 passagiers</option>
<option value="5" #NrPers5# >5 passagiers</option>
<option value="6" #NrPers6# >6 passagiers</option>
<option value="7" #NrPers7# >7 passagiers</option>
<option value="8" #NrPers8# >8 passagiers</option>
</select>

<input name="submit" type="submit" value="Bereken Prijs" />
</div>
</form>
</body>
</html>
Gewijzigd op 14/11/2010 17:00:27 door Justin S
 
Justin S

Justin S

14/11/2010 17:02:43
Quote Anchor link
Wat geeft van dit stuk code de uiteindelijke return value?

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
   function initialize() {
        geocoder = new GClientGeocoder();
        gDir = new GDirections();
        GEvent.addListener(gDir, "load", function() {
            
            var drivingDistanceKilometers = gDir.getDistance().meters / 1000;
            
                    
 km = Math.round(drivingDistanceKilometers + 0.5)        
            
if (km > 0 ) {
    window.location.href = "http://taxi2me.nl/ROUTE/postcode.php?km=" + km + "&adres1=" + location1.address  + "&adres2=" + location2.address;

}

            document.getElementById('results').innerHTML = '<strong>Address 1: </strong>' + location1.address + '<br /><strong>Address 2: </strong>' + location2.address + '<br /><strong>Afstand: </strong>'  + drivingDistanceKilometers + ' kilometers';
        });
    }


Is dat driveDistanceKilometers of KM?

Heet het bestand ook postcode.php?
Gewijzigd op 14/11/2010 17:06:09 door Justin S
 
Hans Blancke

Hans Blancke

14/11/2010 17:05:15
Quote Anchor link
window.location.href = "http://taxi2me.nl/ROUTE/postcode.php?km=" + km + "&adres1=" + location1.address + "&adres2=" + location2.address;


En dan met $_Get de waardes eruit vissen, want met document.getElementById kan ik in php niet gebruiken:(
 
Justin S

Justin S

14/11/2010 17:12:17
Quote Anchor link
Dit is onzin, je verstuurd een formulier, en vervolgens zend je ze met javascript door naar een nieuwe URL? Waarom?!


Je moet zorgen dat de value van het hidden field aantalkilometer wordt ingevuld met de waarde die komt uit het indienen van de postcode. dit zal dus de variabele km zijn. Dus dien je de value te vervangen.

Je input veld:
<input type="hidden" name="distance" value="" id="distancekm" />

Je javascript:
document.getElementById("distancekm").value = km;

Zo zou het moeten werken, beetje aanpassen hier en daar.


Het is NOOIT nodig in dit soort situaties om voor zoiets de URL aan te passen. Dit is niet veilig, onhandig en daarnaast niet erg slim omdat je zo meer code nodig hebt alles uit te filteren.
 
Hans Blancke

Hans Blancke

14/11/2010 17:17:41
Quote Anchor link
Ik had begrepen dat document.getElementById (javascripe) niet met php samen gaat, maar dat je het met $_Get kan opvangen, vandaar. Ik zal de dingen aanpassen en weer ff proberen. Alvast bedankt!

Toevoeging op 14/11/2010 17:27:52:

Het werkt niet. Heb nu:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?php
session_start();
include ("/home/deb35110/domains/taxi2me.nl/public_html/resources/includes/verbinding.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link type="text/css" rel="stylesheet" href="style.css" media="screen" />
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAgV13-t4t3STpZlalXFAmzxQWUOUdy4en180hY4LdqgARW0NSBBR4VptnbNX5MzDRXExbmWRMpnIwGA" type="text/javascript"></script>
    <!-- According to the Google Maps API Terms of Service you are required display a Google map when using the Google Maps API. see: http://code.google.com/apis/maps/terms.html -->
    
</head>

<body>
<?php

echo $_POST["distance"];



$pkVervoermiddelId = 1;
$ritSoortId = 2;

if($_SERVER["REQUEST_METHOD"] == "POST"){
$pkVervoermiddelId = $_POST["pkVervoermiddelId"];
echo $_POST["distance"];
}



if(!empty($_GET['km'])){
    
    
//if($_SERVER['REQUEST_METHOD'] == "POST"){

$km = $_GET['km'];
    $Adres1 = $_GET['adres1'];
    $Adres2 = $_GET['adres2'];
    $ritSoortId = 2;

    echo "De afstand is $km kilometer";


    
    $result = @mysql_query("SELECT * FROM `vervoermiddelPrijzen` WHERE fkVervoermiddelId = '$pkVervoermiddelId' AND fkRitSoort = '$ritSoortId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
            while($gegevens = @mysql_fetch_assoc($result))
            {

                if ($gegevens["kmVan"] <= $km){
                    if($gegevens["kmTot"] < $km)    $kilometers = $gegevens["kmTot"]-$gegevens["kmVan"];
                    else                            $kilometers = (($gegevens["kmVan"]-$km)*(-1))+1;
                    $ritPrijs += $gegevens["tariefInstap"] + ($gegevens["tariefKm"] * $kilometers);                
                    
            
            // Commissie ophalen (Vervoermiddel)
            $result2 = @mysql_query("SELECT * FROM `vervoermiddelen` WHERE pkVervoermiddelId = '$pkVervoermiddelId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
            $vervoermiddelPrijzen = @mysql_fetch_assoc($result2);
            
            // Ophalen van commissie per persoon
            if($vervoermiddelPrijzen["personenMin"] > $ritAantalPersonen)    $fkAantalPersonen = $vervoermiddelPrijzen["personenMin"];
            else                                                                                $fkAantalPersonen = $ritAantalPersonen;
            
            // Commissie van de chauffeur - afronden op 50 cent
            $commissieChauffeur = $ritPrijs * ($vervoermiddelPrijzen['commissie'.$fkAantalPersonen]/100);
            $commissieChauffeur = round(($commissieChauffeur * 2), 0) / 2;
            
            // Toeslag berekenen.
            //echo "<br>".$ritPrijs;
            //echo "<br>".$vervoermiddelPrijzen['toeslag'.$fkAantalPersonen]."%";

            $ritPrijs = $ritPrijs + (($ritPrijs/100)*$vervoermiddelPrijzen['toeslag'.$fkAantalPersonen]);
            $ritPrijs = round(($ritPrijs * 2), 0) / 2;
            echo "<br>De prijs is $ritPrijs Euro";

    }    }}

    //}

    ?>

<script type="text/javascript">
 
    var geocoder, location1, location2, gDir;
 
    function initialize() {
        geocoder = new GClientGeocoder();
        gDir = new GDirections();
        GEvent.addListener(gDir, "load", function() {
            
            var drivingDistanceKilometers = gDir.getDistance().meters / 1000;
            
                    
 km = Math.round(drivingDistanceKilometers + 0.5)         
            

}

            document.getElementById("distancekm").value = km;
 
        });
    }
 
 
 
    function showLocation() {
        geocoder.getLocations(document.forms[0].address1.value, function (response) {
            if (!response || response.Status.code != 200)
            {
                alert("Sorry, we were unable to geocode the first address");
            }
            else
            {
                location1 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
                geocoder.getLocations(document.forms[0].address2.value, function (response) {
                    if (!response || response.Status.code != 200)
                    {
                        alert("Sorry, we were unable to geocode the second address");
                    }
                    else
                    {
                        location2 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
                        gDir.load('from: ' + location1.address + ' to: ' + location2.address);
                    }
                });
            }
        });
    }
 
</script>

<body onload="initialize()">
<form action="" onsubmit="showLocation(); return false;">
<div>

<input id="postcode" type="text" name="address1" value="1326 NA"/><br />
<input type="hidden" name="address2" value="1118 AX" />

<label for="postcode">Vervoermiddel:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze -</option>
<option value="1" #VMselPA# >Personen auto max. 4 pers.</option>
<option value="2" #VMselB6# >Busje max. 6 pers.</option>
<option value="3" #VMselB8# >Busje max. 8 pers.</option>
</select>

<label for="postcode">Aantal personen:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze - </option>
<option value="1" #NrPers1# >1 passagiers</option>
<option value="2" #NrPers2# >2 passagiers</option>
<option value="3" #NrPers3# >3 passagiers</option>
<option value="4" #NrPers4# >4 passagiers</option>
<option value="5" #NrPers5# >5 passagiers</option>
<option value="6" #NrPers6# >6 passagiers</option>
<option value="7" #NrPers7# >7 passagiers</option>
<option value="8" #NrPers8# >8 passagiers</option>
</select>

<input type="hidden" name="distance" value="" id="distancekm" />
 
<input name="submit" type="submit" value="Bereken Prijs" />
</div>
</form>
</body>
</html>


Wil je voortaan de code tags gebruiken?[/modedit]
Gewijzigd op 14/11/2010 18:49:35 door Justin S
 
Justin S

Justin S

14/11/2010 18:50:35
Quote Anchor link
Je form tag is ook fout.
<form action="" method="post">


Heb je een online voorbeeld?
Gewijzigd op 14/11/2010 18:51:19 door Justin S
 
Hans Blancke

Hans Blancke

14/11/2010 19:19:00
Quote Anchor link
Heb het aangepast maar de echo echo "De afstand is: $afstand "; geeft niets, terwijl de echo "Aantal personen is: $pkVervoermiddelId "; het wel doet.

Volgens mij werkt een variabel van javascript niet met php.

Zie onder mijn script zoals het nu is:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
include ("/home/deb35110/domains/taxi2me.nl/public_html/resources/includes/verbinding.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link type="text/css" rel="stylesheet" href="style.css" media="screen" />
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAgV13-t4t3STpZlalXFAmzxQWUOUdy4en180hY4LdqgARW0NSBBR4VptnbNX5MzDRXExbmWRMpnIwGA" type="text/javascript"></script>
<!-- According to the Google Maps API Terms of Service you are required display a Google map when using the Google Maps API. see: http://code.google.com/apis/maps/terms.html -->

</head>

<body>
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php


$afstand
= $_POST["distance"];
echo "De afstand is: $afstand ";


$pkVervoermiddelId = 1;
$ritSoortId = 2;

if($_SERVER["REQUEST_METHOD"] == "POST"){
$pkVervoermiddelId = $_POST["pkVervoermiddelId"];
echo "Aantal personen is: $pkVervoermiddelId ";
}



if(!empty($_GET['km'])){
    
    
//if($_SERVER['REQUEST_METHOD'] == "POST"){

$km = $_GET['km'];
    $Adres1 = $_GET['adres1'];
    $Adres2 = $_GET['adres2'];
    $ritSoortId = 2;

    echo "De afstand is $km kilometer";


    
    $result = @mysql_query("SELECT * FROM `vervoermiddelPrijzen` WHERE fkVervoermiddelId = '$pkVervoermiddelId' AND fkRitSoort = '$ritSoortId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
            while($gegevens = @mysql_fetch_assoc($result))
            {

                if ($gegevens["kmVan"] <= $km){
                    if($gegevens["kmTot"] < $km)    $kilometers = $gegevens["kmTot"]-$gegevens["kmVan"];
                    else                            $kilometers = (($gegevens["kmVan"]-$km)*(-1))+1;
                    $ritPrijs += $gegevens["tariefInstap"] + ($gegevens["tariefKm"] * $kilometers);                
                    
            
            // Commissie ophalen (Vervoermiddel)
            $result2 = @mysql_query("SELECT * FROM `vervoermiddelen` WHERE pkVervoermiddelId = '$pkVervoermiddelId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
            $vervoermiddelPrijzen = @mysql_fetch_assoc($result2);
            
            // Ophalen van commissie per persoon
            if($vervoermiddelPrijzen["personenMin"] > $ritAantalPersonen)    $fkAantalPersonen = $vervoermiddelPrijzen["personenMin"];
            else                                                                                $fkAantalPersonen = $ritAantalPersonen;
            
            // Commissie van de chauffeur - afronden op 50 cent
            $commissieChauffeur = $ritPrijs * ($vervoermiddelPrijzen['commissie'.$fkAantalPersonen]/100);
            $commissieChauffeur = round(($commissieChauffeur * 2), 0) / 2;
            
            // Toeslag berekenen.
            //echo "<br>".$ritPrijs;
            //echo "<br>".$vervoermiddelPrijzen['toeslag'.$fkAantalPersonen]."%";

            $ritPrijs = $ritPrijs + (($ritPrijs/100)*$vervoermiddelPrijzen['toeslag'.$fkAantalPersonen]);
            $ritPrijs = round(($ritPrijs * 2), 0) / 2;
            echo "<br>De prijs is $ritPrijs Euro";

    }    }}

    //}

    ?>

<script type="text/javascript">

var geocoder, location1, location2, gDir;

function initialize() {
geocoder = new GClientGeocoder();
gDir = new GDirections();
GEvent.addListener(gDir, "load", function() {

var drivingDistanceKilometers = gDir.getDistance().meters / 1000;


km = Math.round(drivingDistanceKilometers + 0.5)


}

document.getElementById("distancekm").value = km;

});
}



function showLocation() {
geocoder.getLocations(document.forms[0].address1.value, function (response) {
if (!response || response.Status.code != 200)
{
alert("Sorry, we were unable to geocode the first address");
}
else
{
location1 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
geocoder.getLocations(document.forms[0].address2.value, function (response) {
if (!response || response.Status.code != 200)
{
alert("Sorry, we were unable to geocode the second address");
}
else
{
location2 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
gDir.load('from: ' + location1.address + ' to: ' + location2.address);
}
});
}
});
}

</script>

<body onload="initialize()">
<form action="" method="post">

<div>

<input id="postcode" type="text" name="address1" value="1326 NA"/><br />
<input type="hidden" name="address2" value="1118 AX" />

<label for="postcode">Vervoermiddel:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze -</option>
<option value="1" #VMselPA# >Personen auto max. 4 pers.</option>
<option value="2" #VMselB6# >Busje max. 6 pers.</option>
<option value="3" #VMselB8# >Busje max. 8 pers.</option>
</select>

<label for="postcode">Aantal personen:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze - </option>
<option value="1" #NrPers1# >1 passagiers</option>
<option value="2" #NrPers2# >2 passagiers</option>
<option value="3" #NrPers3# >3 passagiers</option>
<option value="4" #NrPers4# >4 passagiers</option>
<option value="5" #NrPers5# >5 passagiers</option>
<option value="6" #NrPers6# >6 passagiers</option>
<option value="7" #NrPers7# >7 passagiers</option>
<option value="8" #NrPers8# >8 passagiers</option>
</select>

<input type="hidden" name="distance" value="" id="distancekm" />

<input name="submit" type="submit" value="Bereken Prijs" />
</div>
</form>
</body>
</html>
 
Justin S

Justin S

14/11/2010 19:39:21
Quote Anchor link
Zet je code nou eens tussen de Code tags. Ik blijf het niet verzoeken...
Daarnaast, je gebruikt variabelen binnen de quotes. Deze horen erbuiten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    echo 'De afstand is: '.$afstand;
?>


Verder moet je eerst je script opnieuw opbouwen. Er staat een groot gedeelte in met allemaal $_GET variabelen die je niet meer nodig hebt.

Quote:
Volgens mij werkt een variabel van javascript niet met php.

Tuurlijk wel, als je het juist aanpakt wel...

Verder is je KM geen var. dit moet zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var km = Math.round(drivingDistanceKilometers + 0.5)


Geef je form een name="pricecalculator" en selecteer je value zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
document.pricecalculator.distance.value = km;


De function showLocation(); kan je compleet weggooien aangezien deze overbodig is geworden.

In je php verwerking van het script ben je nog steeds bezig met $_GET['km'], dit moet je ombouwen dat dit POST worden en je moet je script eens nakijken op de werking.
 
Hans Blancke

Hans Blancke

14/11/2010 20:11:20
Quote Anchor link
Hallo Justin,

Sorry maar ik ben nog niet zo erg thuis in dit geheel. Ik heb je aanwijzingen opgevolgd en de code wat netter bij elkaar gezet. Kom nog niet uit "code tags gebruiken" Als je dat nog even mee wilt geven doe ik dat ook.

Als met al werkt het nog steeds niet. Ik heb de code zoals nu weer even hieronder aangegeven. De echo "De afstand is: $afstand "; geeft nog steeds niets.

Ik ben je wel heel erg dankbaar voor je hulp tot nu toe :)

Hans


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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
session_start();
include ("/home/deb35110/domains/taxi2me.nl/public_html/resources/includes/verbinding.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link type="text/css" rel="stylesheet" href="style.css" media="screen" />
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAgV13-t4t3STpZlalXFAmzxQWUOUdy4en180hY4LdqgARW0NSBBR4VptnbNX5MzDRXExbmWRMpnIwGA" type="text/javascript"></script>
<!-- According to the Google Maps API Terms of Service you are required display a Google map when using the Google Maps API. see: http://code.google.com/apis/maps/terms.html -->
</head>
<body>
<?php

$afstand
= $_POST["distance"];
echo 'De afstand is: '.$afstand;


$pkVervoermiddelId = 1;
$ritSoortId = 2;

if($_SERVER["REQUEST_METHOD"] == "POST"){
$pkVervoermiddelId = $_POST["pkVervoermiddelId"];
echo 'Aantal personen is: ' .$pkVervoermiddelId ;
}


if(!empty($_GET['km'])){
    
//if($_SERVER['REQUEST_METHOD'] == "POST"){
$ritSoortId = 2;

echo "De afstand is $km kilometer";
    
$result = @mysql_query("SELECT * FROM `vervoermiddelPrijzen` WHERE fkVervoermiddelId = '$pkVervoermiddelId' AND fkRitSoort = '$ritSoortId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
while($gegevens = @mysql_fetch_assoc($result))
{

if ($gegevens["kmVan"] <= $km){
if($gegevens["kmTot"] < $km)    $kilometers = $gegevens["kmTot"]-$gegevens["kmVan"];
else                            $kilometers = (($gegevens["kmVan"]-$km)*(-1))+1;
$ritPrijs += $gegevens["tariefInstap"] + ($gegevens["tariefKm"] * $kilometers);                
                
    
// Commissie ophalen (Vervoermiddel)
$result2 = @mysql_query("SELECT * FROM `vervoermiddelen` WHERE pkVervoermiddelId = '$pkVervoermiddelId' ") or mysqlerror("Er is een fout opgetreden.", mysql_error());
$vervoermiddelPrijzen = @mysql_fetch_assoc($result2);
            
// Ophalen van commissie per persoon
if($vervoermiddelPrijzen["personenMin"] > $ritAantalPersonen)    $fkAantalPersonen = $vervoermiddelPrijzen["personenMin"];
else $fkAantalPersonen = $ritAantalPersonen;
            
// Commissie van de chauffeur - afronden op 50 cent
$commissieChauffeur = $ritPrijs * ($vervoermiddelPrijzen['commissie'.$fkAantalPersonen]/100);
$commissieChauffeur = round(($commissieChauffeur * 2), 0) / 2;
            
// Toeslag berekenen.
$ritPrijs = $ritPrijs + (($ritPrijs/100)*$vervoermiddelPrijzen['toeslag'.$fkAantalPersonen]);
$ritPrijs = round(($ritPrijs * 2), 0) / 2;
echo "<br>De prijs is $ritPrijs Euro";

}}}
    


?>

<script type="text/javascript">
 
var geocoder, location1, location2, gDir;
 
function initialize() {
geocoder = new GClientGeocoder();
gDir = new GDirections();
GEvent.addListener(gDir, "load", function() {
            
var drivingDistanceKilometers = gDir.getDistance().meters / 1000;
            
                    
 var km = Math.round(drivingDistanceKilometers + 0.5)
}
document.pricecalculator.distance.value = km;

});
}
</script>

<body onload="initialize()">
<form name="pricecalculator" action="" method="post">
<div>
<input id="postcode" type="text" name="address1" value="1326 NA"/><br />
<input type="hidden" name="address2" value="1118 AX" />

<label for="postcode">Vervoermiddel:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze -</option>
<option value="1" #VMselPA# >Personen auto max. 4 pers.</option>
<option value="2" #VMselB6# >Busje max. 6 pers.</option>
<option value="3" #VMselB8# >Busje max. 8 pers.</option>
</select>

<label for="postcode">Aantal personen:</label>
<select name="pkVervoermiddelId">
<option value="0">- Maak een keuze - </option>
<option value="1" #NrPers1# >1 passagiers</option>
<option value="2" #NrPers2# >2 passagiers</option>
<option value="3" #NrPers3# >3 passagiers</option>
<option value="4" #NrPers4# >4 passagiers</option>
<option value="5" #NrPers5# >5 passagiers</option>
<option value="6" #NrPers6# >6 passagiers</option>
<option value="7" #NrPers7# >7 passagiers</option>
<option value="8" #NrPers8# >8 passagiers</option>
</select>
                                    
<input type="hidden" name="distance" value="" id="distancekm" />
 
<input name="submit" type="submit" value="Bereken Prijs" />
</div>
</form>
</body>
</html>
Gewijzigd op 14/11/2010 21:55:35 door Justin S
 
Jasper DS

Jasper DS

14/11/2010 20:13:00
Quote Anchor link
code tags gebruiken = [.code][./code] zonder puntjes rond je code
 
Justin S

Justin S

14/11/2010 21:57:06
Quote Anchor link
Ik heb het idee dat er geen output is vanuit de Google Maps functie. Doe eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
alert(km);


Onderaan de functie, dus na document.pricecalculator.distance.value=km;

Krijg je dan output in het dialoogscherm?
Gewijzigd op 14/11/2010 21:57:25 door Justin S
 
Hans Blancke

Hans Blancke

14/11/2010 22:19:31
Quote Anchor link
Doet inderdaad niets meer. In het eerdere script had ik wel output van Google, maar na de aanpassingen niet meer.

Gr. Hans
 
Justin S

Justin S

15/11/2010 17:16:28
Quote Anchor link
Je moet dit eerst oplossen.. Zorgen dat je weer output krijgt van google. Dan kan je pas verder met het verwerken van die data.
 

Pagina: 1 2 volgende »



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.