使用php将mysql数据加载到javascript变量时出现奇怪的错误

使用php将mysql数据加载到javascript变量时出现奇怪的错误,php,javascript,mysql,html,Php,Javascript,Mysql,Html,我访问了一个数据库并获取了数据(为了简单起见,假设只有一个数据),数据是一个数组,有一个字段“link”,即url 我将$data['link']的值传递给php变量$l1;为了进行比较,我还将实际url传递给另一个varibale$l2 接下来的两行尝试将值传递给javascript变量。如果我删除第一行(echo“var link1=\”$l1\”;“;”),它会工作;如果我保留第一行,它不会(警报对话框未显示)。我认为这是url的问题,但是$l2的值与$data['link']完全相同,接

我访问了一个数据库并获取了数据(为了简单起见,假设只有一个数据),数据是一个数组,有一个字段“link”,即url

我将$data['link']的值传递给php变量$l1;为了进行比较,我还将实际url传递给另一个varibale$l2

接下来的两行尝试将值传递给javascript变量。如果我删除第一行(echo“var link1=\”$l1\”;“;”),它会工作;如果我保留第一行,它不会(警报对话框未显示)。我认为这是url的问题,但是$l2的值与$data['link']完全相同,接下来的两行在html页面的源代码中也显示相同

代码如下:

<script type="text/javascript">
function readData() {
alert('haha1');
<?php
$l1 = $data['link'];
$l2 = "http://upload.wikimedia.org/wikipedia/commons/1/17/Affenpinscher.jpg";
echo "var link1 = \"$l1\";";
echo "var link2 = \"$l2\";";
?>
alert('haha2');
}
</script>
<body onload="readData();"></body>

函数readData(){
警惕('haha1');
警惕('haha2');
}

有人知道为什么会这样吗?谢谢你的帮助

我不确定我是否理解你的怀疑。在任何情况下,凭直觉,我都会尝试这样的方法:

<script type="text/javascript">
function readData() {
alert('haha1');
<?php
$l1 = json_encode($data['link']);
$l2 = "http://upload.wikimedia.org/wikipedia/commons/1/17/Affenpinscher.jpg";
echo "var link1 = ".$l1.";";
echo "var link2 = \"$l2\";";
?>
alert('haha2');
}
</script>
<body onload="readData();"></body>

函数readData(){
警惕('haha1');
警惕('haha2');
}
对于javascript,您的URL可能“格式不正确”;并导致分析错误。
让我们知道情况是否如此…

您能否发布由此生成的html源代码?听起来这可能是Javascript问题,而不是PHP问题……另外,请尝试将$l1的声明更改为:
$l1=”http://... (与$l2相同)
并查看是否得到相同的结果。它有效!还有一个问题:我应该何时使用“json_encode”?出于序列化目的,您可以使用它将数组转换为json(即,您需要通过非PHP层“传输”您的数据);但在您基本上需要转义的情况下,它也是一个方便的函数。