在我的项目中,我有一个图库和一个画布,用于显示从图库中点击的图像。对于许多图像,我绘制矩形并将矩形的坐标存储在MySQL中。使用JavaScript和PHP,每当点击图库中的图像时,根据图像名称,我将从MySQL获取矩形坐标。
将MySQL中的值作为数组提取到JavaScript的代码如下:
<?php
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("mydb");
$clickedImg = $_POST['clickedImg'];
$query = mysql_query("select x,y,w,h from annotations where imagename = '$clickedImg'");
while ($row = mysql_fetch_assoc($query)){
print_r($row);
}
?>
当我尝试echo时,它只返回一个空白数组,而不是print_r。 在控制台上打印时获取的数组如下所示:
Array
(
[x] => 369
[y] => 327
[w] => 147
[h] => 112
)
Array
(
[x] => 228
[y] => 329
[w] => 129
[h] => 106
)
我在固定位置绘制矩形的原始脚本如下:
function draw(canvas, event){
ctx=c.getContext("2d");
ctx.fillStyle="#ff0000";
ctx.beginPath();
ctx.fillRect (250*Math.random()+1, 220*Math.random()+1, 40, 30);
ctx.closePath();
ctx.fill();
// Save canvas
saveCanvas(canvas);
}
这只是在随机位置打印矩形。我想在ctx.fillRect
的位置使用上面提到的数组中的值。
我尝试了以下内容:
function draw(canvas, event){
ctx=c.getContext("2d");
ctx.fillStyle="#ff0000";
ctx.beginPath();
for (var i=0; i<=newrects.length;i++) {
var r = newrects[i];
alert(r);
ctx.fillRect (r.x, r.y, r.w, r.h);
}
ctx.closePath();
ctx.fill();
// Save canvas
saveCanvas(canvas);
}
我基本上想要使用Array中的值绘制矩形。但是绘制函数中的当前for循环不是读取值。因此,我不确定从PHP接收值的格式是否正确。
如何在我的绘制函数的for循环中使用数组中的值。