0

データベースのフィールドに次のテキストがあります。

プロジェクトの要件を調査し、それに応じて仕様を文書化する
PDMS 配管および関連機器のルーティング モデルの開発
配管ルートと構造の大まかなレイアウトと最終レイアウト用に設計された 3D イラスト
適切な機能と安全性を確保するために、複雑な配管構造の高架支持システムを作成
詳細な製作図を提供
新規および既存の設計に対して実行されたストレスおよび機能テスト
設計および安全基準に従って、既存のレイアウトと構造をアップグレードしました
準備されたプロット プランと機器のレイアウト
等角図、一般配置図、サポート詳細図の作成

変数 (つまり ) を介してデータベースからフェッチし$text、javascript 関数を介して解析してfunction(text)、テキストをフォーム textarea フィールドに投稿して編集します。

しかし、ボタンをクリックして関数を実行しても、何もしません。テキストが小さい場合は、正常に機能します。javascript変数の文字数に制限はありますか?

PHP コード:

<?
$var = mysql_fetch_row($query);
$text=$var['cool'];

echo "<a onclick=\"func($text)\">button</a>";
?>

<script>
function func(text) {   
        $('<div>cool: '+text+'</div>').fadeIn('slow').appendTo('.somediv');
}
</script>
4

2 に答える 2

4

引数をエンコードする必要があります。

$text = htmlspecialchars(json_encode($var['cool']));

とはいえ、要素はすでにページ内の正しい場所にあるため、長期的には他の解決策の方が優れている可能性があります。それはあなたがそれで何をしようとしているのかによります。

編集:エスケープは完全ではない可能性があります。徹底的にテストしてください。

于 2012-08-25T21:31:31.703 に答える
1

私はこれを行います:(JavaScriptの制限のテキストのため)

<?php
    $var = mysql_fetch_row($query);
    $text=$var['cool'];

    echo "<div id=\"hiddendiv\" style=\"display:none\">".$text."</div><a onclick=\"func()\">button</a>";
?>

<script type="text/javascript">
function func(text) {   
    $('#hiddendiv').fadeIn('slow').appendTo('.somediv');
}
</script>
于 2012-08-25T21:30:32.717 に答える