[英]echo a javascript function with parameters in php
我正在嘗試在 php 中傳遞一個 JavaScript function 和一個 onclick 事件。我面臨的問題是我需要傳遞的 function 有一個參數需要用雙引號引起來,如下所示:
onclick="removeElement("div8")"
現在,當我使用 JavaScript 生成參數時,結果很好,但是每當我在 php 中使用 echo function 時,當我在瀏覽器中查看 function 時,會發生以下情況
onclick="removeElement(" div8")"
我用來生成它的代碼是:
echo '<div><img src="img.png" alt="image" onclick="removeElement("div'.$x.'")" /></div>';
其中 $x 是要添加到參數的數字。
有沒有一種方法可以將 function 作為一個整體返回並且不獲取其間的空間?
發生這種情況是因為引號內有引號。 這將不起作用,並且會破壞 HTML 解析器。 它將 onclick 視為removeElement(
,然后它看到一個名為div8")"
的屬性。
試試這個:
echo '.....onclick="removeElement("div'.$x.'")"...';
HTML 實體在屬性內部進行解析,因此結果將是您的工作代碼。
將您的 echo 更改為此:
echo '<div><img src="img.png" alt="image" onclick="removeElement(\'div'.$x.'\')" /></div>';
您必須轉義 javascript 中的引號。而不是
onclick="removeElement("div8")"
你應該寫
onclick="removeElement("div8")"
試試 escaping 你的單引號
echo '<div><img src="img.png" alt="image" onclick="removeElement(\'div'.$x.'\')" /></div>';
只要您不在屬性值中使用任何空格,就可以省略 html 屬性值周圍的引號。 所有瀏覽器都會處理得很好。 所以你可以寫:
onclick=removeElement("div8")
您還可以使用單引號:
onclick="removeElement('div8')" or
onclick='removeElement("div8")'
或者你可以轉義雙引號:
echo '<div><img src="img.png" alt="image" onclick="removeElement(\"div'.$x.'\")" /></div>';
但更簡單的解決方案是直接寫入 html:
?>
<div>
<img src='img.png' alt='image' onclick='removeElement("div<?php echo $x; ?>")' />
</div>
當你使用 php echo 試試這個代碼
<a href="javascript:add_cota(<?php echo $value->ID .','.$k.', \''.$st.'\'';?>)">
$st 是避免 ReferenceError: Active is not defined 錯誤的字符串參數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.