2012-05-29 3 views
0

Я пытаюсь эхо-автогенерировать элементы формы html, но на странице всегда отображается html-код в виде текста. Когда я проверяю вывод через Chrome, он показывает сгенерированный ввод формы с кавычками и пробелами. Вот то, что я пытался и результаты:php echo html без кавычек и пробелов

Вот код генерирует всю форму

<form action="<?php echo url_for('/survey/submit?id='.$Survey->getId()) ?>" method="post"> 
    <ul> 
    <?php foreach($Questions as $Question): ?> 
     <li><?php echo $Question->questionHtml() ?></li> 
    <?php endforeach; ?> 
    </ul> 
</form> 

А вот пример результата:

"<li> 
           <input class="survey" size="40" type="text" name="Sample Survey[input_1]" id="Sample_Survey_input_1" />    </li>" 

Я попытался htmlentities также.

echo htmlentities($Question->questionHtml()) 
" 
           &lt;input class=&quot;survey&quot; size=&quot;40&quot; type=&quot;text&quot; name=&quot;Sample Survey[input_1]&quot; id=&quot;Sample_Survey_input_1&quot; /&gt;    " 

Проблема в том, что я не мог получить эти сгенерированные элементы формы, отображаемые на странице, но только простой текстовый формат из них.

+0

В чем проблема? Первый из них перекликается с HTML, второй эхо-код кодируется HTML ... – Ansari

+3

Можете ли вы показать нам строки, предшествующие этому выводу? – Sampson

ответ

1

Если его показывая код, который нужно расшифровать HTML сущности

echo html_entity_decode($Question->questionHtml()); 

http://www.php.net/manual/en/function.html-entity-decode.php

НО

Это не должно быть сделано. Функция questionHtml() должна только превращать значения формы в их объекты, а не всю форму.

0

Если $Question->questionHtml() соответствует правильному HTML, то все, что вам нужно, это использовать trim() для удаления пробелов.

Смежные вопросы