为什么我的输入字段是意外结束 PHP字符串连接后?

问题描述

在我的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

希望这可以为您提供帮助。