在php-quotation中已经占用的html中调用javascript

时间:2013-09-02 12:37:38

标签: javascript php html string

在PHP代码中,我需要使用echo来键入一些HTML代码。在HTML内部,我调用了一个事件,它启动了一个需要带字符串的JS代码。

<?php
echo "<input type='text' name='myname' onclick='startJScode(this, "Input your name")' />";
?>

为了告诉我要回复什么,我使用了字符“,所以我用'来定义HTML中的字符串。但是没有其他引号类型留下来为Javascript代码定义一个字符串 - 使用它们中的任何一个将与已经使用的字符串混合。

如何处理呢?

3 个答案:

答案 0 :(得分:1)

使用:

<?php
echo "<input type='text' name='myname' onclick='startJScode(this, \"Input your name\")' />";
?>

答案 1 :(得分:0)

使用

<?php
echo "<input type='text' name='myname' onclick=\"startJScode(this, 'Input your name')\" />";
?>

echo " "; 

不要像

那样重复双重qoute

错误代码

                             v //double quote ended here
echo "this is a "test" string";
     ^ //double quote started here

因此,如果报价

之间需要,则需要在双引号前使用反斜杠

正确的代码

                v //use backslash
echo "this is a \"test\" string";
                      ^ //use backslash

单引号相同的问题

错误代码

                             v //double quote ended here
echo 'this is a 'test' string';
     ^ //double quote started here

正确的代码

                v //use backslash
echo 'this is a \'test\' string';
                      ^ //use backslash

否则

如果开始和结束报价是代码之间的双引号将是单引号

echo "this is a 'test' string";

如果开始和结束报价是单引号之间的代码将是双引号

echo 'this is a "test" string';

答案 2 :(得分:0)

您可以使用\

转义引号

例如:

echo "<input type='text' name='myname' onclick='startJScode(this, \"Input your name\")' />"

这将逃避内部引号。

或者您可以使用Heredoc syntax

示例:

$foo = <<<CODE
    <input type="text" name="myname" onclick="startJScode(this, 'Input your name')" />
CODE;
echo $foo;

如果您想输出带有许多不同引号的XML \ HTML,那么Heredoc语法非常方便,因为它允许您省略字符串的引号。