0

自動生成された HTML フォーム要素をエコーし​​ようとしていますが、ページには常に HTML コードがテキストとして表示されます。Chrome 経由で出力を確認すると、生成されたフォーム入力が引用符と空白で表示されます。これが私が試したことと結果です:

フォーム全体を生成するコードは次のとおりです

<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;             "

問題は、これらの生成されたフォーム要素をページに表示できず、それらのプレーンテキスト形式のみを取得できなかったことです。

4

2 に答える 2

1

コードが表示されている場合は、html エンティティをデコードする必要があります

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

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

しかし

これを行う必要はありません。questionHtml() 関数は、フォーム全体ではなく、フォームの値のみをエンティティに変換する必要があります。

于 2012-05-29T21:45:47.527 に答える
0

が正しい HTML をエコーし​​ている場合$Question->questionHtml()は、 を使用trim()して空白を削除するだけです。

于 2012-05-29T21:49:31.270 に答える