Speak now
Please Wait Image Converting Into Text...
Embark on a journey of knowledge! Take the quiz and earn valuable credits.
Challenge yourself and boost your learning! Start the quiz now to earn credits.
Unlock your potential! Begin the quiz, answer questions, and accumulate credits along the way.
General Tech Bugs & Fixes 2 years ago
Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.
Turn Your Knowledge into Earnings.
I'm trying to display route data on a map using leaflet. I'm pulling the data from a MYSQL database with a php script. which is working. The data is stored in an array called vechiclelatlong. I use under the Javascript tag where is have my Leaflet script. I am getting the following error:
Uncaught ReferenceError: vehiclelatlong is not defined
See scripts below:
<php function vData(){ include("dbconnecti.php"); $strtDate = strtotime('20150404'); $endDate = strtotime('20150405'); $query = "SELECT ED.latitude, ED.longitude, ED.timestamp, ED.creationTime FROM EventData ED WHERE ED.latitude <> 0 AND ED.longitude <> 0 AND (ED.timestamp >= $strtDate) AND (ED.timestamp <= $endDate)"; $results = $dbconnect->query($query); if (!$results) { echo mysql_error(); die('There was an error excuting query statment: ' ); //. mysqli_error()); } $num_of_rows = $results -> num_rows; $data = array(); echo "var vehiclelatlong = ["; for ($x = 0; $x < $num_of_rows; $x++) { $data[] = $results -> fetch_assoc(); echo "[".$data[$x]['latitude'].",".$data[$x]['longitude']."]"; if ($x <= $num_of_rows - 2) { echo ","; } } echo "];"; } vData(); ?>
DOCTYPE html> <html> <head> <title>Tobago Street Map title> <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/black-tie/jquery-ui.css" type="text/css" /> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" charset="utf-8">script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js" charset="utf-8">script> <link rel= REPLY 0 views 0 likes 0 shares Facebook Twitter Linked In WhatsApp
While your PHP looks to be creating an array, I'm not sure that you're going to have consistent luck getting JS to read it that way (an arrant space here or there, etc.). At least I've tried that in the past, only to realize that while it LOOKS like a good array, it isn't.
I think you're better off just returning your MySQL as a true array and then using json_encode($array) to get it in something that will consistently be read by JS.
Something like
var vehiclelatlong = php json_encode($array); ?>;
EDIT: Lets stick with your array (although JSON ~ GEOJSON and there are good PHP GEO tools out there). I got it to work doing the following.1. made sure both files had a *.php extension2. removed **" on either side of my include statement in my main page3. made sure my included file was correctly referenced in my main page4. made sure my DB query was returning a valid result. I made some changes (including just trying it using SQLite) but you can see the same result.
php function vData(){ $db = new PDO("sqlite:so.db"); $query = "SELECT latitude, longitude FROM EventData"; $statement1 = $db->prepare($query); $statement1->execute(); $results = $statement1->fetchall(PDO::FETCH_ASSOC); echo "var vehiclelatlong = ["; $count=1; foreach ($results as $result) { echo "[".$result['latitude'].",".$result['longitude']."]"; if ($count < count($results)) echo ","; $count++; } echo "];"; } vData(); ?>
No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.
General Tech 9 Answers
General Tech 7 Answers
General Tech 3 Answers
General Tech 2 Answers
Ready to take your education and career to the next level? Register today and join our growing community of learners and professionals.