Проблема с превращением длинной объединенной переменной в heredoc - PullRequest
1 голос
/ 24 октября 2011
$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 Ответ

1 голос
/ 24 октября 2011

Я не знаю, почему у вас будут проблемы.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;
...