Javascript循环数组

时间:2018-03-02 10:27:04

标签: javascript php arrays

在我的项目中,我有一个图库和一个画布,用于显示从图库中点击的图像。对于许多图像,我绘制矩形并将矩形的坐标存储在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循环中使用数组中的值。

0 个答案:

没有答案