3

我一生都无法弄清楚如何将此javascript函数存储在php变量中。基本上我想将此函数作为标准字符串存储在 php 变量中,然后将其打印在页面上。我知道我必须转义 javascript 才能让它与 PHP 一起使用,但我坚持这样做的原因是因为这个特定的 Javascript 和 HTML 组合似乎同时使用了 " 和 ' 所以我不知道如何躲开它。也许你们能帮帮我?

这是我要存储在 php 变量中的代码:

<a href='javascript:PopupContact_OpenForm("PopupContact_BoxContainer","PopupContact_BoxContainerBody","PopupContact_BoxContainerFooter");'><img src='/popup-contact-form.jpg' /></a>
<div style="display: none;" id="PopupContact_BoxContainer">
    <div id="PopupContact_BoxContainerHeader">
        <div id="PopupContact_BoxTitle">Contact Us</div>
        <div id="PopupContact_BoxClose"><a href="javascript:PopupContact_HideForm('PopupContact_BoxContainer','PopupContact_BoxContainerFooter');">Close</a></div>
    </div>
    <div id="PopupContact_BoxContainerBody">
        <form action="#" name="PopupContact_Form" id="PopupContact_Form">
        <div id="PopupContact_BoxAlert"> <span id="PopupContact_alertmessage"></span> </div>
        <div id="PopupContact_BoxLabel_Page"> Your Name </div>
        <div id="PopupContact_BoxLabel_Page"><input name="PopupContact_name" class="PopupContact_TextBox" type="text" id="PopupContact_name" maxlength="120"></div>
        <div id="PopupContact_BoxLabel_Page"> Your Email </div>
        <div id="PopupContact_BoxLabel_Page"><input name="PopupContact_email" class="PopupContact_TextBox" type="text" id="PopupContact_email" maxlength="120"></div>
        <div id="PopupContact_BoxLabel_Page"> Enter Your Message </div>
        <div id="PopupContact_BoxLabel_Page"><textarea name="PopupContact_message" class="PopupContact_TextArea" rows="3" id="PopupContact_message"></textarea></div>
        <div id="PopupContact_BoxLabel_Page"><input type="button" name="button" class="PopupContact_Button" value="Submit" onClick="javascript:PopupContact_Submit(this.parentNode,'/popup-contact-form/');"></div>
    </form>
    </div>
</div>
        <div style="display: none;" id="PopupContact_BoxContainerFooter"></div>

希望你能明白我的意思,我想将它存储在我的 $button 变量中

谢谢!

4

4 回答 4

4

您可以将整个内容放在单引号中,然后转义其中的每个单引号\',但更好的方法是使用 PHP 的nowdoc语法:

$str = <<<'STR_HTML'
  // All your HTML goes here
STR_HTML;

如果你的 PHP 版本早于 5.3,你不能使用 nowdoc,所以你应该使用heredoc。区别就像双引号(heredoc)和单引号(nowdoc)之间的区别。

有关更多信息,请参阅有关字符串的 PHP 手册页

于 2013-05-21T23:13:04.757 回答
2

您可以做的最好的事情是将您的 JavaScript 函数移动到单独的文件中。将它们混合到您的 PHP 中会造成很多混乱。

在您的 PHP 中:

<html>
    <head>
        <script src="path/to/my/script.js"></script>
    </head>
    <body>
    ....
</html>

在脚本文件中:

function PopupContact_OpenForm( ... ) {
    ...
}

这将使组织源代码和添加更多功能变得更加容易,而无需混合 PHP 和 JavaScript。

(如果您仍想将所有内容保留在 PHP 文件中,请按照其他人的建议使用 HEREDOC。)

于 2013-05-21T23:15:50.567 回答
1

heredoc 语法来拯救!

于 2013-05-21T23:13:52.543 回答
0

将所有这些都放在变量混合代码和 html 中真的不好。

不过,要回答您的问题,请使用heredoc

$bar = <<<LABEL
Nothing in here...
LABEL;
于 2013-05-21T23:16:36.023 回答