【问题标题】:Trouble turning long concatenated variable into heredoc麻烦将长连接变量转换为heredoc
【发布时间】:2011-12-13 21:11:35
【问题描述】:
$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 填充的表单,并将您发送到另一个页面进行编辑。

提前谢谢你。

【问题讨论】:

    标签: php string concatenation heredoc


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      相关资源
      最近更新 更多