Javascript fonksiyonu içinde PHP değişkeni

3 Cevap php

Ben bir javascript işlevi içinde bir php değişken koymak için çalışıyor ve hiçbir şans yaşıyorum, burada ne var

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

`

Ben bunu bir javascript değişken veya basit sayılar göndermek moveTo () işlevi mükemmel çalışıyor.

Ben xpos diğer yerlerde erişilebilir bir oturum değişkeni içinde olması gerekir, çünkü onun hiç bir php değişken olarak nedenidir. Aşağıdaki gibi sonradan atama

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

Ben zaten fark varsa, vaktinden teşekkür ederim, bu tür yeniyim :)

3 Cevap

çift ​​tırnak koyarak deneyin.

echo $xpos;

Bu sadece açıklığa kavuşturmak için, ancak bir yazım hatası (d dd olmalı) var gibi görünüyor. Düzeltilmiş:

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

Bazı konular:

  • PHP Değişken interrpolation gerekmez, $xpos kendisi tarafından gayet iyi
  • onclick false döndüren tek bir ifadeye sahip olmalıdır, böylece ideal başka bir fonksiyon içine olur. Burada bir anonim biri kullanılır

Zaten örtülü böyledir beri Ayrıca, onclick, 'javascript: ile başlamak gerekmez.

Benim tahminim xpos ve ypos anda kapsamında olmadığını sayfanın o kısmı işlenir olacaktır.

Kapsamı içine parantez anlamına gelir. Örneğin aşağıdaki çalışmaz

$xpos = 100;

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

// call the function
printx();

Hiçbir şey basılacak

aşağıdaki kullanmak gidermek için

$xpos = 100;

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

// call the function
printx();

Bu daha sonra 100 yazdırır