Lassie Posted March 16, 2015 Share Posted March 16, 2015 I am stuck trying to think of how I can use the results from my query to create php variables into a form that I can use, further in my php script or pass to a javascript to displat a map If I can pass the vars to javascript what is the best/safe way to do this. I am thinking of var postcode = "<?php echo $postcode; ?>"; var latitude = "<?php echo $latitude; ?>"; var longitude = "<?php echo $longitude; ?>"; This is the query and problem The results of the echo KT17 51.34 -0.24 KT18 51.31 -0.26 KT19 51.35 -0.26 -0.26global $wpdb; $wpdb->show_errors();//debug $result = mysql_query("SELECT postcode,latitude,longitude FROM uk_postcodes WHERE town = '$town'AND county='$county' ");// Get the postcode and lat and long while ( $row = mysql_fetch_assoc( $result ) ) { $postcode=$row['postcode']; $latitude=$row['latitude']; $longitude=$row['longitude']; echo $postcode .'<br/>'; echo $latitude .'<br/>'; echo $longitude .'<br/>'; } //put php variables into the form postcode, latitude, longitude ? //pass to javascript to draw map. var locations = [ ['KT17', 51.34, -0.24, 4], ['KT18', 51.31, -0.26, 5] ['KT19', 51.35, -0.26, 5] ]; This is the javascript <script type="text/javascript"> //need var for each var locations = [ ['KT17', 51.34, -0.24, 4], ['KT18', 51.31, -0.26, 5] ['KT19', 51.35, -0.26, 5] ]; var map = new google.maps.Map(document.getElementById('map'), { zoom: 10, center: new google.maps.LatLng(51.35, -0.26),//need var for latling as centre of map mapTypeId: google.maps.MapTypeId.ROADMAP }); var infowindow = new google.maps.InfoWindow(); var marker, i; for (i = 0; i < locations.length; i++) { marker = new google.maps.Marker({ position: new google.maps.LatLng(locations[i][1], locations[i][2]), map: map }); google.maps.event.addListener(marker, 'click', (function(marker, i) { return function() { infowindow.setContent(locations[i][0]); infowindow.open(map, marker); } })(marker, i)); } </script> Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/ Share on other sites More sharing options...
rwhite35 Posted March 16, 2015 Share Posted March 16, 2015 You can use JSON encoding to pass variables from PHP to Javascript. I prefer a JS Object as apposed to a variable. <script> var coordObj = new Object; coordObj.postcode = <?php echo htmlspecialchars(json_encode($postcode), ENT_NOQUOTES); ?>; coordObj.latitude = <?php echo htmlspecialchars(json_encode($latitude), ENT_NOQUOTES); ?>; coordObj.longitude = <?php echo htmlspecialchars(json_encode($longitude), ENT_NOQUOTES); ?>; </script> Then to access your JS object, included later one in the same page render (this is not asynchronous). <script> var postcode = coordObj.postcode; var latitude = coordObj.latitude; var longitude = coordObj.longitude; //now do the rest of your stuff </script> Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/#findComment-1508241 Share on other sites More sharing options...
maxxd Posted March 16, 2015 Share Posted March 16, 2015 If I'm understanding your question properly, in WordPress you'll want to take a look at the register_script(), localize_script(), and enqueue_script() functions fired from the wp_enqueue_scripts action hook. function enqueueStuff(){ wp_register_script('script_id',$this->getPluginDirectory()."/js/yourJSFile.js"); wp_localize_script('script_id','script_data',array( 'postCode'=>$this->getPostCode(), 'latitude'=>$this->getLatitude(), 'longitude'=>$this->getLongitude() )); wp_enqueue_script('script_id'); } add_action('wp_enqueue_scripts','enqueueStuff'); Of course, the pathing to your JavaScript file and the methods getting the post code, latitude, and longitude will be different for you - these are random stubs, but that's the basic idea of it. Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/#findComment-1508246 Share on other sites More sharing options...
Lassie Posted March 17, 2015 Author Share Posted March 17, 2015 Thanks Guys I will work these through Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/#findComment-1508295 Share on other sites More sharing options...
Lassie Posted March 17, 2015 Author Share Posted March 17, 2015 Before solving the javascript challenge I need to get my result into a useable format. Each row has three cols and I need each row with the three cols for example and with vars. $co-ordinate 1=['KT17', 51.34, -0.24, 4], $co-ordinate 2=['KT18', 51.31, -0.26, 5] $co-ordinate 3 =['KT19', 51.35, -0.26, 5] $co-ordinate 1=['$postcode1', $lat1, $long1, 4],etc $co-ordinate 2=['$postcode2', 51.31, -0.26, 5] $co-ordinate 3 =['KT19', 51.35, -0.26, 5] So my problem is how to get to that from this, Any help appreciated. $i=0; while($row = mysql_fetch_assoc($result)) { $postcode[$i] = $row['postcode']; $latitude[$i] = $row['latitude']; $longitude[$i]= $row['longitude']; $i++; echo $poatcode[$i] .'<br/>'; echo$latitude[$i] .'<br/>'; echo $longitude[$i] .'<br/>'; } Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/#findComment-1508345 Share on other sites More sharing options...
cypher86 Posted March 17, 2015 Share Posted March 17, 2015 $row is already in that format. anyway try this $i=0; while($row = mysql_fetch_assoc($result)) { $co-ordinate[$i]= ( "postcode" => $row['postcode'], "latitude" => $row['latitude'], "longitude" => $row['longitude'] ); $i++; } Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/#findComment-1508361 Share on other sites More sharing options...
maxxd Posted March 17, 2015 Share Posted March 17, 2015 Before solving the javascript challenge I need to get my result into a useable format. Each row has three cols and I need each row with the three cols for example and with vars. $co-ordinate 1=['KT17', 51.34, -0.24, 4], $co-ordinate 2=['KT18', 51.31, -0.26, 5] $co-ordinate 3 =['KT19', 51.35, -0.26, 5] $co-ordinate 1=['$postcode1', $lat1, $long1, 4],etc $co-ordinate 2=['$postcode2', 51.31, -0.26, 5] $co-ordinate 3 =['KT19', 51.35, -0.26, 5] So my problem is how to get to that from this, Any help appreciated. $i=0; while($row = mysql_fetch_assoc($result)) { $postcode[$i] = $row['postcode']; $latitude[$i] = $row['latitude']; $longitude[$i]= $row['longitude']; $i++; echo $poatcode[$i] .'<br/>'; echo$latitude[$i] .'<br/>'; echo $longitude[$i] .'<br/>'; } Are you having difficulties with php output for screen or php output for JavaScript? Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/#findComment-1508382 Share on other sites More sharing options...
Lassie Posted March 17, 2015 Author Share Posted March 17, 2015 Thanks for coming back. I think my problem is with php screen before I go to the javascript. Link to comment https://forums.phpfreaks.com/topic/295294-help-with-variable-to-pass-to-javascript/#findComment-1508410 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.