簡體   English   中英

echo a javascript function 參數在 php

[英]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(&quot;div'.$x.'&quot;)"...';

HTML 實體在屬性內部進行解析,因此結果將是您的工作代碼。

將您的 echo 更改為此:

echo '<div><img src="img.png" alt="image" onclick="removeElement(\'div'.$x.'\')" /></div>';

您必須轉義 javascript 中的引號。而不是

onclick="removeElement("div8")"

你應該寫

onclick="removeElement(&quot;div8&quot;)"

試試 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM