我有个问题。我写了一些与"var pixelArray = [];"
相呼应的PHP代码。在那之后,它会回显一些类似的变量:"var canvas$id = 'can' + $id;"
。并且还针对每个变量回波CCD_ 3。
现在,由于某种原因,当我运行脚本时,数组不包含任何内容。
有人能向我解释一下原因吗?
如果你需要更多信息,请告诉我。
编辑:
这是我的完整(但仍然很简单(代码:
<?php
$blockCounter = 1;
$scriptCounter = 1;
$arrayCounter = 1;
$size = 32 * 32;
$yLine = 1;
while ($blockCounter <= $size)
{
if ($blockCounter == 32 * $yLine){
echo "<canvas id='"can$blockCounter'" width='"17'" height='"17'" style='border:1px solid #777777;'>GET A NEW BROWSER</canvas>";
echo "<br>";
$blockCounter = $blockCounter + 1;
$yLine = $yLine + 1;
}
else{
echo "<canvas id='"can$blockCounter'" width='"17'" height='"17'" style='border:1px solid #777777;'>GET A NEW BROWSER</canvas>";
$blockCounter = $blockCounter + 1;
}
}
echo "<script>";
echo "var pixelArray = [];";
while ($arrayCounter <= $size)
{
echo "var name$arrayCounter = 'can' + $arrayCounter;";
echo "pixelArray.push(name$arrayCounter);";
$arrayCounter = $arrayCounter + 1;
}
while ($scriptCounter <= $size)
{
echo "var c = document.getElementById('"can$scriptCounter'");";
echo "picoco$scriptCounter = c.style.backgroundColor = '"#000000'";";
$scriptCounter = $scriptCounter + 1;
}
echo "document.getElementById('"arrayLoc'").innerHTML = pixelArray[0];";
echo "</script>";
?>
<p id="arrayLoc"></p>
document.getElementById("arrayLoc"(返回null,而不是pixelArray[0]。问题是在javascript加载时,段落标记尚未加载到DOM中。你可以把它放在下面显示的脚本上面。
echo '<p id="arrayLoc"></p>';
echo "<script>"
echo "var pixelArray = [];";
while ($arrayCounter <= $size)
{
echo "var name$arrayCounter = 'can' + $arrayCounter;";
echo "pixelArray.push(name$arrayCounter);";
$arrayCounter = $arrayCounter + 1;
}
while ($scriptCounter <= $size)
{
echo "var c = document.getElementById('"can$scriptCounter'");";
echo "picoco$scriptCounter = c.style.backgroundColor = '"#000000'";";
$scriptCounter = $scriptCounter + 1;
}
echo "document.getElementById('"arrayLoc'").innerHTML = pixelArray[0];";
echo "</script>";
?>
或者在加载DOM后运行javascript。
echo "<script>";
echo "window.onload = function () {";
echo "var pixelArray = [];";
while ($arrayCounter <= $size)
{
echo "var name$arrayCounter = 'can' + $arrayCounter;";
echo "pixelArray.push(name$arrayCounter);";
$arrayCounter = $arrayCounter + 1;
}
while ($scriptCounter <= $size)
{
echo "var c = document.getElementById('"can$scriptCounter'");";
echo "picoco$scriptCounter = c.style.backgroundColor = '"#000000'";";
$scriptCounter = $scriptCounter + 1;
}
echo "document.getElementById('"arrayLoc'").innerHTML = pixelArray[0];";
echo "}";
echo "</script>";
?>
<p id="arrayLoc"></p>