0

PHPエコー内のHTML文字列でjs関数をエコーし​​ようとしています。

そして、私はそれを理解することはできません:

$MY_JS_FUNCTION = '<script type="text/javascript">item + getLastField2()</script>';

if($row2->type == 'text') {
    echo "<li id='item-".$row2->rank."' class='list_item'>";
    echo "<textarea rows='2' id='".$row2->single_id."' cols='90' name='field[".$MY_JS_FUNCTION."]' data-kind='text' >".$row2->content."</textarea>";
    echo "</li>";
    echo '<br />';
}

この作品を手に入れるためのアイデアはありますか?引用符がたくさんあると思います...

どんな助けでも非常にありがたいです、ありがとう!

4

3 に答える 3

0

変数には、いくつかの(奇妙な)JavaScriptコード(セミコロンがない)を$MY_JS_FUNCTION含むHTMLタグが含まれています。<script>コードに基づいて、echo5行目の結果は次のHTMLになります。

<textarea ... name='field[<script type="text/javascript">item + getLastField2()</script>]' ... >...</textarea>

これは間違いなく有効なHTMLではありません。そして、あなたの問題があります...

于 2011-11-27T01:17:16.680 に答える
0

名前もデータベースに保存することをお勧めします。次に、$row2->nameを使用して正しい名前を挿入できます

于 2011-11-27T00:58:12.037 に答える
0

そのJSをエコーし​​て、ページが読み込まれたときにJSが実際にそのテキストエリアの名前フィールドの値を設定するようにすることが目的のようです。その場合、より簡単な方法は次のようになります。

$MY_JS_FUNCTION = '<script type="text/javascript">document.getElementById("myTextArea").name = item + getLastField2()</script>';

if($row2->type == 'text') {
    echo "<li id='item-".$row2->rank."' class='list_item'>";
    echo "<textarea rows='2' id='".$row2->single_id."' cols='90' id='myTextArea' data-kind='text' >".$row2->content."</textarea>";
    echo $MY_JS_FUNCTION;
    echo "</li>";
    echo '<br />';
}

これにより、有効なHTMLが生成されます。JS関数は、その行に到達すると起動し、関数の結果が何であれ、「name」値を更新します。JSがターゲットとする要素を認識できるように、必ず「id」フィールドを追加してください。

于 2011-11-27T01:23:41.023 に答える