Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数中的PHP变量_Php_Javascript - Fatal编程技术网

javascript函数中的PHP变量

javascript函数中的PHP变量,php,javascript,Php,Javascript,我试图在javascript函数中放入一个php变量,但运气不好,下面是我得到的 <a class="code" href="javascript:void(0);" onclick="javascript:if(window.dd && dd.elements) d.elements.name1.moveTo(<? echo "$xpos"; ?>, <? echo "$ypos"; ?>); return false;">

我试图在javascript函数中放入一个php变量,但运气不好,下面是我得到的

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

我对这一点有点陌生,如果您还没有注意到,请提前感谢:)

我猜XPO和YPO在处理部分页面时不在范围内

作用域指的是封闭的大括号。例如,以下操作将不起作用

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

我猜在处理部分页面时XPO和YPO不在范围内

作用域指的是封闭的大括号。例如,以下操作将不起作用

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

请尝试不使用双引号

echo $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变量interpolation,
    $xpos
    本身就可以了
  • onclick
    应该只有一个返回false的表达式,因此最好将其包装到其他位置的函数中。这里我用了一个匿名的

另外,
onclick
不需要以
'javascript:
开头,因为它已经是隐式的了。

这只是为了澄清,但您似乎有一个打字错误(
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变量interpolation,
    $xpos
    本身就可以了
  • onclick
    应该只有一个返回false的表达式,因此最好将其包装到其他位置的函数中。这里我用了一个匿名的

另外,
onclick
不需要以
的javascript:
开头,因为它已经隐式地以javascript:开头了。

是否尝试查看html源代码?您可能想查看
$xpos
$ypos
返回的内容。感谢您的快速响应,我已尝试回显变量,它确实返回了正确的数字,我还应该提到,最初变量是从上一页发送的$GET分配的,引号可能有问题?你能发布HTML源代码吗?Ie,转到页面,然后复制并粘贴
是的,需要查看生成的源代码。是否尝试查看html源代码?您可能想查看
$xpos
$ypos
返回的内容。感谢您的快速响应,我已尝试回显变量,它确实返回了正确的数字,我还应该提到,最初变量是从上一页发送的$GET分配的,引号可能有问题?你能发布HTML源代码吗?Ie,转到页面,然后复制并粘贴
yup,需要查看生成的源代码。为了增强上述答案,您也可以使用语法打印XPO,但范围仍然很重要,并且在某些安装中无法工作(由于php.ini设置)因此,我个人不推荐这种方法,只是为了增强上述答案,您也可以使用语法打印XPO,但范围仍然很重要,并且在某些安装中无法工作(由于php.ini设置)因此,我个人不推荐这种方法,假设
dd
是一个表单名称,您也不应该将
window.dd
dd
用作变量名称。这仅适用于IE。使用
document.forms.dd.elements
。最后,为了明智起见,考虑将多行处理程序函数移出到<代码> <代码>块或外部脚本中,分配给<代码>链接。OnCase=函数(){返回false;}code>href=“#”
也没有javascript:
伪URL那么难看。(始终避免使用
javascript:
)假设
dd
是一个表单名,您也不应该将
window.dd
dd
用作变量名。这仅适用于IE。使用
document.forms.dd.elements
。最后,为了明智起见,考虑将多行处理程序函数移出到<代码> <代码>块或外部脚本中,分配给<代码>链接。OnCase=函数(){返回false;}code>href=“#”也没有javascript:伪URL那么难看。(始终避免使用
javascript: