因为缺少封装url字符串所需的单引号。
$url = "http://www.google.com";
$button .=
'<input type="button" value="Print Timetable" class="printButton" onclick="window.open(\''.$url.'\');"/>';
您正在添加一层字符串封装。当您将字符串值传递给函数时,它必须用引号括起来,因为它是一个字符串。
doSomething('http://www.ibm.com/');
当你这样做是内嵌在HTML,你需要封装JavaScript在双引号,使其成为
onclick="doSomething('http://www.ibm.com/');";
然后,如果你想PHP呼应的是,或将其分配作为变量,需要附上所有的,在报价,所以你可以做
<?php
//encapsulate in double quotes and escape double quotes
echo " onclick=\"doSomething('http://www.ibm.com/');\" ";
//encapsulate in single quotes and escape single quotes
echo ' onclick="doSomething(\'http://www.ibm.com/\'); ';
?>
任何方式,你打破它,你需要有嵌入在彼此3级封装,所以你必须找到一种方式来DIF在JS中使用的引号和PHP中使用的引号之间进行区分。
否则你会有问题。
<?php
//Houston We have a problem!
echo " onclick="doSomething('http://www.ibm.com/');\" ";
^ ^ ^^
Open Quote Close Quote Open Quote Close Quote
?>
后,您在浏览器中得到 – Shyju