麻烦将长连接变量转换为heredoc

时间:2011-10-24 06:05:51

标签: php string concatenation heredoc

$eventDropdowns ="<form method = \'get\' action = \'changer.php\'>";
$eventDropdowns.="<select name = \'change_event\' class = \'dropdown\' id = \'change_event\'><option value = \'\'>Failed loading records</option></select>";
$eventDropdowns.="<select name = \'event\' class = \'dropdown\' id = \'event\'><option value = \'\'>Failed loading records</option></select>";
$eventDropdowns.="<input  name = \'return\' type =\'hidden\' value = \'{$_SERVER['REQUEST_URI']}\'>";
$eventDropdowns.="<input type =\'submit\' value = \'CHANGE!\'>";
$eventDropdowns.="</form>";

我相当肯定引用样式必须是\',因为它被放置在脚本中,因为它被'包围,它出现在PHP中; PHP调用Javascript变得混乱。

我不确定这是否是我无法将这个丑陋的连接变量转换为heredoc的原因。

echo "
  <div id = \"test\" 
  ondblclick = \"document.getElementById('test').innerHTML = '$eventDropdowns';\">
    Change Event
  </div>
";

当我将$evenDropdowns转换为heredoc时,整个页面只会加载空白,没有错误。但是,当我保持原样时,它按照我的意图工作,当您双击div中的文本时,它会显示一个通过AJAX填充的表单,并将您发送到另一个页面进行编辑。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

我不知道你为什么遇到麻烦。一个heredoc非常容易编写。您只是开始吐出文本,就好像您没有处于PHP模式一样,还有一个额外的好处就是能够在文本中嵌入变量。根本没有逃避,* 除非您要输出文字$符号。

echo <<<EOL
<form method ="get" action="changer.php">
    <select name="change_event" class="dropdown" id="change_event">
         <option value="">Failed loading records</option>
    </select>
    <select name="event" class="dropdown" id="event">
         <option value="">Failed 
... etc...
EOL;