【发布时间】:2015-01-30 00:05:06
【问题描述】:
描边文本方法不起作用。问题出在下面一行:
cns.strokeText(<?php echo posST($StreamVal[0][0]); ?>,x,y);
当我在该数组元素([0][0] 的元素)中使用数值时,不会出现任何问题,并且代码可以正常工作。但是当我使用字符串值时,该值不显示。
<?php
$StreamVal=array(
array("Stream1",80),
array("Stream2",10),
array("Stream3",10),
array("Stream4",10)
);
function posST($Stream)
{
return $Stream;
}
?>
<script>
var c = document.getElementById("Canvas");
var cns = c.getContext("2d");
var x=50*Math.cos((<?php echo posST($StreamVal[0][1]); ?>*Math.PI)/50)+100;
var y=50*Math.sin((<?php echo posST($StreamVal[0][1]); ?>*Math.PI)/50)+75;
cns.font = "30px Arial";
**cns.strokeText(<?php echo posST($StreamVal[0][0]); ?>,x,y);**
</script>
我该如何解决这个问题?
【问题讨论】:
-
您将字符串回显到 js 中,周围没有引号。
...xt('<?php echo posST($StreamVal[0][0]); ?>',x...如果您查看页面的源代码,它看起来像:...xt(some text here,x,y);它会认为您引用的是某个变量,而不是字符串。 -
@JonathanKuhn 是正确的,您需要用引号将您的声明括起来。但是你不应该一开始就混用 PHP 和 JavaScript。作为一种好的做法,请始终尝试通过 Ajax 使用 JSON 来避免这种情况。
标签: javascript php html canvas