问题描述
在我的PHP代码中,我echo
一个字符串,其中包含带有javascript事件的输入字段。在这种情况下,我分配了一个函数,我们在其中传递了2个参数。一个是数字,另一个是字符串。
我在函数参数中的级联有些错误。当我在输入字段上单击时,出现此错误
Uncaught SyntaxError: Unexpected end of input
这是我的代码:-
<?PHP
$id = 6;
?>
<!DOCTYPE html>
<html>
<body>
<?PHP
echo '<input type="checkBox" data-plugin-iso-switchx onchange="smtp_function('.$id.',"dfgdfg")">';
?>
<script>
function smtp_function(a,b){
alert('ok');
}
</script>
</body>
</html>
解决方法
javascript部分中的"
引号存在问题。试试这个:
echo '<input type="checkbox" data-plugin-iso-switchx onchange="smtp_function('.$id.',\'dfgdfg\')">';
在这里,我使用'
而不是"
引号,并使用反斜杠对其进行转义。
如果$id
不是数字,则还需要使用引号。您可以执行以下操作以添加这些引号:
echo '<input type="checkbox" data-plugin-iso-switchx onchange="smtp_function(\''.$id.'\',\'dfgdfg\')">';
所有这些引号可能变得难以理解,因此使用此引号可能会更好:
$js = "smtp_function('$id','dfgdfg')";
echo '<input type="checkbox" data-plugin-iso-switchx onchange="'.$js.'">';
请注意,对双引号内的变量进行求值。
,问题是您使用了两次“。
尝试更改引号的类型或使用转义符
我更喜欢在文本字符串中使用`,因为它不会中断换行符
以下代码有效。
$PATH
希望这可以为您提供帮助。