Database, PHP, XML, Javascript Api Google maps

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans De Ridder

Hans De Ridder

27/04/2016 17:07:08
Quote Anchor link
Ik gebruik een Javascript Api voor Google maps.
Vanuit de database zet ik met een PHP bestand (via XML) de gegevens om naar Javascript.
Dat gaat allemaal goed.
Nu verander ik in de kaart een cirkel (slepen, groter/kleiner).
Vervolgens voeg ik deze nieuwe gegevens weer toe aan de PHP.
En dan gaat het verkeerd. De nieuwe gegevens worden aangeleverd via een $_POST.
De XML wordt weliswaar netjes gemaakt op grond van de nieuwe gegevens
(markers plaatsen binnen de cirkel).
Maar blijkbaar zit er dan wat verkeerd in de timing met het Javascript?
Met vaste gegevens (Utrecht) geen probleem.
Hier de belangrijkste stukjes (denk ik).
Iemand die me verder kan helpen?

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
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
$query = "SELECT * FROM markers";

$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

//Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){

$haversign= new HaverSign();


if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $lat2 = $_POST['lat'];
    $lon2 = $_POST['lon'];
    $rad2 = $_POST['rad'];
    
//echo $lat2."  ".$lon2."  ".$rad2;
}

//DEFINE (R, 6367000); // Radius van de aarde

//Utrecht
//$lat2 = 52.0901422;
//$lon2 = 5.1096649;
//$rad2 = 180;

//while ($row = @mysql_fetch_assoc($result)){
$lat3 =    $row['lat'];
$lon3 = $row['lng'];
$address = $row['address'];    

$dist = $haversign->getDistance($lat2,$lon2,$lat3,$lon3);
//echo $dist."  ".$rad."  ".$address."<br>";

if ($dist < $rad2){

    // ADD TO XML DOCUMENT NODE
  echo '<marker ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . parseToXML ($row['lat']) . '" ';
  echo  'lng="' . parseToXML ($row['lng']) . '" ';
  echo 'type="' . parseToXML ($row['type']) . '" ';
  echo '/>';
}
}
 //End XML file

echo '</markers>';

?>



Javascript

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
    downloadUrl(testm, function(data)                
        {
             var xml = data.responseXML;
          var markers = xml.documentElement.getElementsByTagName("marker");
//alert("markers "+markers.length);
          for (var i = 0; i < markers.length; i++) {
              var name = markers[i].getAttribute("name");
 //alert(name);
              var address = markers[i].getAttribute("address");
              var type = markers[i].getAttribute("type");
.
.
.
.
.
    function downloadUrl(url, callback) {
        var request = window.ActiveXObject ?
          new ActiveXObject('Microsoft.XMLHTTP') :
          new XMLHttpRequest;

      request.onreadystatechange = function() {
    
            if (request.readyState == 4) {
          request.onreadystatechange = doNothing;
          callback(request, request.status);
        }
      };
    
request.open('GET', url, true);
request.send(null);
        }


Toevoeging op 28/04/2016 13:26:42:

Als ik rechtstreeks stuur vanaf de form (zowel $_GET, als $_GET bij PHP) dan komt alles goed aan.
Wanneer ik het stuur vanaf de Iframe op de website, dan gaat het mis. Iframe heb ik even gedaan ivm de refesh anders.
 
PHP hulp

PHP hulp

04/12/2024 10:34:54
 
Hans De Ridder

Hans De Ridder

28/04/2016 21:09:06
Quote Anchor link
Ik heb het een en ander verplaatst naar de gewone website.
Maar ik kan nu de submit niet op de gewone manier geven.
Iemand een idee?

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
<script type="text/javascript">
    $("document").ready(function(){
      $(".js-ajax-php-json").submit(function(){
        var data = {
          "action": "test"
        };
        data = $(this).serialize() + "&" + $.param(data);
        $.ajax({
          type: "POST",
          dataType: "json",
          url: "test_map4.php", //Relative or absolute path to response.php file
          data: data,
          success: function(data) {
            $(".the-return").html(
              "lat " + data["lat"] + "<br />lon " + data["lon"] + "<br />radius: " + data["rad"] + "<br />JSON: " +

    data["json"]
            );
            alert("Form submitted successfully.\nReturned json: " + data["json"]);
          }
        });
        return false;
      });
    });
 </script>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
document.getElementById("lat").value = lat;
document.getElementById("lon").value = lon;
document.getElementById("rad").value = zz;
document.getElementById("form").submit(); // dit werkt niet, ook niet als ik een id en naam toevoeg "form".

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<form class="js-ajax-php-json" method="post" accept-charset="utf-8" target = "stuur">
<input type = "text" id = "lat" name = "lat" value = "52.090737">
  <input type = "text" id = "lon" name = "lon" value = "5.121420">
  <input type = "text" id = "rad" name = "rad" value = "180">
  <input type="submit" name="submit" value="Submit form"  />
</form>
Gewijzigd op 28/04/2016 21:10:24 door Hans De Ridder
 
Randy vsf

Randy vsf

29/04/2016 10:35:11
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form class="js-ajax-php-json" method="post" accept-charset="utf-8" target = "stuur">


Ik mis hier het ID?

document.getElementById("form")


PS:
Verander de name atribute van de submit knop eens ^^
Gewijzigd op 29/04/2016 10:52:44 door Randy vsf
 
Hans De Ridder

Hans De Ridder

29/04/2016 12:11:23
Quote Anchor link
Klopt helemaal.... Hoort ook zo. Maar ook al probeer ik het met ID dan werkt het niet.
Ook al geprobeerd via de class te submitten.
Heeft denk ik te maken dat na de submit een Ajax wordt geactiveerd.
Want wordt na de submit naar een een PHP gestuurd.
Ik heb met firebug gekeken..als ik op de submitknop druk komen netjes de gebevens uit de database
met de gewijzigde gegevens.
Heb al heel wat uitgeprobeerd.... Maar lukt me steeds niet.
 
Randy vsf

Randy vsf

29/04/2016 12:18:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="submit" name="submit" value="Submit form"  />


Je overschrijft de form.submit hiermee (de functie die je wilt aanroepen).
Verander de name eens, dan werkt het wel.

OM het zichtbaar te maken:
Wat je nu hebt: https://jsfiddle.net/Lyc57snt/
Met de name van de submit knop gewijzigd: https://jsfiddle.net/Lyc57snt/1/
Gewijzigd op 29/04/2016 12:19:54 door Randy vsf
 
Hans De Ridder

Hans De Ridder

29/04/2016 16:01:47
Quote Anchor link
De standaard mogelijkheden werken niet. Ook niet met de naamswijziging.
Denk dat het combinatie is van submitten vanaf een javascript functie.
En de Ajax verwacht echt een click op de submitknop.
Ik wil juist die knop overslaan en vanuit script submit geven.
Maar bedankt voor het meedenken...
 
Randy vsf

Randy vsf

29/04/2016 16:11:19
Quote Anchor link
Volgens mij ben je het veel ingewikkelder aan het maken dan nodig is.
Kan je eens precies uitleggen wat de bedoeling van dit script is?
 
Hans De Ridder

Hans De Ridder

29/04/2016 16:19:20
Quote Anchor link
Heb je priveberichtje gestuurd
 
Hans De Ridder

Hans De Ridder

01/05/2016 11:10:00
Quote Anchor link
Ik heb met firebug lite in de console gekeken.
Na wat wijzigingen blijkt nu dat aan de POST kant de wijzigingen netjes worden verwerkt.
Maar de GET kant blijft leeg.
Blijkbaar is de afstemming niet juist.
Bovendien heeft dit betrekking op een reload van Javascript Api google maps.
En dat schijnt dan ook nog eens anders te zijn.

Ik heb geen ervaring met auto complete functies, etc.
Als iemand me wat tips kan geven hoe dat in te bouwen in de huidige scripts, heel graag.
Gewijzigd op 01/05/2016 12:13:56 door Hans De Ridder
 
Hans De Ridder

Hans De Ridder

09/05/2016 19:00:46
Quote Anchor link
Ik ben er uitgekomen...
Het werkt nu allemaal.
Dus nu nog wat opties erin bouwen.
 



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.