2011-12-22 9 views
1

誰でもシングルクォートの代わりにHTML特殊文字を使用しない次のコードを使う方法か、意図した結果は?Cakephp 2.0:Html-> link()でjavascriptを使用する

<li> 
    <a href="--url--" onMouseOver="setHelp(&#039;--js_param--&#039;)"> 
</li> 

は、明らかに私はこの間違ったをやっている:

<?php echo $this->Html->link(
         'View', 
         $row['view'], 
         $options = array(
           'onMouseOver'=>'setHelp(\''.$row['id'].'\')' 
           ) 
         ); 
?> 

結果は次のようになります。しかし、Cake APIは、HtmlHelperのlink()メソッドがjavascript対応のリンクのためのものであることを示唆しているようです。助けて?

+0

まだ動作しませんか? –

+2

フレームワークがラムボーのやり方でやっているよりもタスクを遂行するには時間がかかります。何かが本当に間違っています... – Toping

+3

@Arkあなたが質問の文脈から得られないものは、CakePHPは強力なルーティングシステムを持っていますこの構文を利用することができます。 htmlを書くのが速ければ、開発者として使う必要はありません(これはおそらくここにあります)。しかし、ルートでフレームワークを適切に使用する方法が分かっている場合は、これは簡単にパイとなり、コントローラのアクションへのリンクを簡単に作成できます。 –

答えて

2
<?php echo $this->Html->link(
        'View', 
        $row['view'], 
        array(
          'onMouseOver'=>'setHelp(\''.$row['id'].'\')', 
          'escape' => false 
        ) 
       ); 
?> 
+0

あなたが勝った!!!!! ^^ – Kreker

+0

私のためのチェックボックスはありません! :) –

+0

悲しい顔が悲しい:( – Kreker

0

純粋なhtmlの使用はどうですか?

<li> 
    <a></a> 
    </li> 

彼らは私があなたのコードはすべきだと思う...

+0

他の2つの回答(同じ)は、質問の範囲内で何をしようとしているのか(そしてCakePHP)達成するでしょう。 –

1

を可能ケーキタグとすべての場合には、実際に(規則を以下)常に使用することをお勧めしますが、時にはPROBを凌駕するのが一般的なHTMLを使用して間違っていませんあなたは出力をエスケープしないようにケーキを強制することができます:

echo $this->Html->link(
    'View', 
    $row['view'], 
    array(
    'onMouseOver'=>'alert(\''.$row['id'].'\');', 
    'escape' => false 
) 
); 
+0

Moz Morris:ありがとう! 普通のhtmlを提案してくれた人に:ありがとう、しかし私はScottとして、私はあなたのアプリケーションでどんな種類のルーティングをしていてもそれを使用します。ハーウェルは、ケーキ・コンベンションを超えてこのようにする理由があり、開発の後期段階では、この種のことが一定していない社内のjsライブラリを使用することになると述べています。 – Jonline

関連する問題