我看了How to pass variables and data from PHP to JavaScript?和http://www.dyn-web.com/tutorials/php-js/json/multidim-arrays.phpbut我无法将它拉到一起......非常压倒性而且我只是一个初学者(他们甚至说使用AJAX ......哇! !)。你能帮帮我们吗?
我的情况是:
我想从正文的onload事件中调用我的php脚本。
理想我想做:
function init(){
// some instructions
var myvar;
myvar = result of execution of my_php_script;
//using myvar in some other instructions
}
您可以在我的JS的最后几行中看到我打算如何使用这个"代码"如上所述
我当前的HTML
<body onload="init();">
<div id="map">
</div>
</body>
我目前的JS
function init(){
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18,
id: 'your.mapbox.project.id',
accessToken: 'your.mapbox.public.access.token'
}).addTo(mymap);
}
var myvar = result of execution of php script (a table)
var marker = L.marker([myvar[0][1], myvar[0][2]]).addTo(mymap);
}
我目前的php(这个php脚本现在工作正常。我想在javascript var myvar中返回$ row)
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
try {
$hostname = "SQLSERVER_INSTANCE_1";
$port = 1433;
$dbname = "MY_BD";
$username = "user";
$pw = "pass";
$dbh = new PDO ("sqlsrv:Server=$hostname,$port;Database=$dbname","$username","$pw");
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
$sth = $dbh->prepare("SELECT * FROM dbo.COORD");
$sth->execute();
/*while($row = $sth->fetch(PDO::FETCH_ASSOC)){
print $row['lat']. "<br/>";
}*/
$row = $sth->fetch(PDO::FETCH_ASSOC);
echo $row['lat'];
?>
答案 0 :(得分:2)
打破问题。首先,您需要以JavaScript理解的格式对PHP数据进行编码。一个很好的方法是通过JSON json_encode。
接下来,您需要从JavaScript向PHP脚本发出HTTP请求。为此,您可以使用Jquery ajax函数,并将数据类型设置为JSON。