2017-04-21 38 views
1

如何給報價在PHP的HTML屬性

echo "<tr onclick='window.location=("www.google.com")'> 
 
     <td>something</td> 
 
     <td>something</td> 
 
    </tr>"

我寫這樣的代碼,但它不是working.i不知道往哪裏放單引號和雙qoutes。 我不知道如何編寫onclick在php 請建議我

+0

'回聲 「」;' –

+0

,應該閱讀雙或單引號之間的差[這裏](http://stackoverflow.com/a/3446286/6140684) –

+2

@Masivuye產生無效的HTML語法。 – deceze

回答

4

避免使用echo的HTML。退出PHP模式並進入輸出模式。

避免使用嵌套文字值。將每種語言寫成單獨的變量,使用合適的轉義函數來添加所需的任何引號,然後將它們放在一起。

通過將所有內容保留爲單獨的圖層並逐一處理它們,並且通過使用函數而不是嘗試手動編寫逃生函數,可以使事情更容易維護。

$url = "http://www.google.com"; 
$js_string_literal_url = json_encode($url); 
$js = "window.location = $js_string_literal_url"; 
$html_safe_js = htmlspecialchars($js); 

?> 
<tr onclick="<?php echo $html_safe_js; ?>"> 
    <td>something</td> 
    <td>something</td> 
</tr> 

這就是說,你也應該避免:

  • 特點這完全取決於JS
  • onclick屬性

寫入HTML這樣的作品,然後用提高JS。

如果你想不想找個鏈接:使用鏈接:如果你想使該鏈接的工作(使用JS)爲整個錶行

<tr> 
    <td><a href="http://www.google.com">something</a></td> 
    <td>something</td> 
</tr> 

,綁定一個事件偵聽器,以查找點擊,然後找到被點擊的行中的第一個鏈接。

document.querySelector("table").addEventListener(follow_link_in_row); 
function follow_link_in_row(event) { 
    var table_row = event.target; 
    while (table_row && table_row.tagName.toLowerCase() !== "tr") { 
     table_row = table_row.parentNode; 
    } 
    if (!table_row) { return; } 
    var link = table_row.querySelector("a[href]"); 
    var url = link.href; 
    window.location = url; 
} 
+0

謝謝@Quentin它正在工作 –