簡體   English   中英

JavaScript函數中的PHP變量

[英]PHP variable inside a javascript function

我試圖將php變量放入javascript函數中,但沒有運氣,這就是我得到的

<a class="code" href="javascript:void(0);"
   onclick="javascript:if(window.dd && dd.elements) 
   d.elements.name1.moveTo(<? echo "$xpos"; ?>, <? echo "$ypos"; ?>);
   return false;">
name1.moveTo(name1.x-20, name1.y+7);</a>

`

當我向它發送一個javascript變量或簡單數字時,moveTo()函數可以完美地工作。

它在php變量中的原因是因為我需要將xpos放在會話變量中才能在其他地方訪問。 之后我將其分配如下

$_SESSION['productcheck']['x'] = $xpos;

我有點陌生,如果您還沒有注意到的話,謝謝您:)

盡量不要使用雙引號。

echo $xpos;

這只是為了澄清,但您似乎有一個錯字( d應該是dd )。 更正:

<a class="code" href="javascript:void(0);"
   onclick="return (function () {
       if(window.dd && dd.elements) 
           dd.elements.name1.moveTo(<? echo $xpos; ?>, <? echo $ypos; ?>);
       return false; 
    })()"
>
    name1.moveTo(name1.x-20, name1.y+7);
</a>

一些問題:

  • 您不需要PHP變量插值, $xpos本身就可以
  • onclick應該只有一個返回false的表達式,因此理想情況下,請將其包裝在其他函數中。 在這里我用一個匿名的

另外, onclick不必以'javascript:開頭,因為它已經是隱式的了。

我猜想在處理頁面的那部分時,xpos和ypos不在范圍內。

范圍是指括號。 例如以下將不起作用

$xpos = 100;

function printx(){
  echo $xpos; // enclosing quotes not required
}

// call the function
printx();

什么都不會打印

要修復它,請使用以下命令

$xpos = 100;

function printx(){
  global $xpos;
  echo $xpos; // enclosing quotes not required
}

// call the function
printx();

然后將打印100

暫無
暫無

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

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