2011-12-22 72 views
1

任何人都可以提供使用以下代碼的方法,該方法不會導致使用HTML特殊字符替代單引號,或者使用替代方法生成預期的結果?CakePHP 2.0:使用JavaScript與Html->鏈接()

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

結果是這樣的:

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

顯然,我這樣做是錯誤的。但Cake API似乎表明HtmlHelper的link()方法是適用於JavaScript的鏈接的開始。幫幫我?

+0

不應該它仍然工作,但? – 2011-12-22 19:03:32

+2

ween一個框架需要更多時間來完成一項任務,而不是在rambo的方式上完成任務,這真的是錯誤的... – Toping 2011-12-22 19:06:13

+3

@Ark你從問題的上下文中得不到什麼是CakePHP有一個強大的路由系統,可以利用這個語法。如果編寫html的速度更快(這可能是這種情況),您不必將其用作開發人員。但是,當你知道如何正確地使用框架和路由時,這很容易做到,並且有助於快速建立與控制器操作的鏈接。 – 2011-12-22 20:26:04

回答

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

你贏了!!!!! ^^ – Kreker 2012-07-26 12:28:39

+0

沒有複選框給我! :) – 2012-07-26 19:24:10

+0

悲傷的臉是傷心的:( – Kreker 2012-07-27 10:03:41

0

如何使用純html?

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

他們確實建議使用總是可能的話蛋糕標籤和所有(以下約定),但有時是沒有錯的使用普通的HTML超過一個概率...

+0

其他兩個答案(這是相同的)將實現你想要在問題範圍內(和CakePHP)做什麼。 – 2011-12-22 20:28:21

1

我覺得你的代碼工作,但你可以強迫蛋糕不逃避輸出:

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

Moz Morris:Thankyou! 對於那些建議使用常規html的人:謝謝,但是我作爲Scott在你的應用程序中做任何類型的路由,使用它。「escape」參數有很好的文檔記錄,可以解決你的問題。哈維爾指出,除了蛋糕會議之外,有這樣做的理由,並且在開發的後期階段將使用內部的js庫,其中這種事情將會是一個不變的嘮叨。 – Jonline 2011-12-23 19:42:04