簡體   English   中英

您如何將PHP變量傳遞給內聯javascript函數?

[英]How do you pass in a PHP variable into an inline javascript function?

<div id="test" onclick="someFunction('<?=$some_id[1]?>', this);"><span ></span></div>

我正在嘗試將PHP變量傳遞給內聯javascript函數; 但是,當此函數執行onclick時,會引發錯誤(Firebug控制台):

SyntaxError: unterminated string literal

someFunction('

我這樣做的方法是將其編碼為json:

echo "someFunction(".htmlentities(json_encode($some_id[1]), ENT_QUOTES).", this);";

或者,如果您位於html上下文中:

someFunction(<?php echo htmlentities(json_encode($some_id[1]), ENT_QUOTES); ?>, this);

json_encode將根據各種數據類型(包括字符串,數字等)做出正確的javascript字符串。 然后,在向html中添加任何內容時應始終使用htmlentities,以確保引號不會破壞該輸出。

請注意,我並沒有把引號中的字符串- JSON都有自己的報價,如果需要的話。

您確定可以在托管服務上使用PHP短標簽嗎?

為了測試,我會嘗試:

<div id="test" onclick="someFunction('<?php echo $some_id[1]; ?>', this);"><span></span</div>

“ someFunction”是否期望第一個變量為字符串或整數? 因為如果期望整數,則可能不需要在變量周圍使用單引號。

所有這些都假設$ some_id [1]包含一個整數值。

唯一可以直接傳遞給事件的是事件對象,這是不使用嵌入式JavaScript的另一個原因。 當然,您的PHP必須首先編寫,否則您應該研究AJAX解決方案,您的代碼應該看起來像:

  <script type='text/javascript'>
    var doc = document;
    function E(e){
      return doc.getElementById(e);
    }
    var tst = E('test');
    function anotherFunc(arg1, element){
      // do stuff here
    }
    tst.onclick = function(){
      anotherFunc('<?=$some_id[1];?>', this);
    }
  </script>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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