将PHP变量传递给Javascript函数

将PHP变量传递给Javascript函数

问题描述:

我有一个名为$ path的变量。我想将这个变量从PHP传递给一个javascript函数。将PHP变量传递给Javascript函数

<button onclick='myFunctionContact(\"" . $row1['id'] . "\")'> 
    <img border='0' alt='Contacts' src='".$imgpth."peoplesmall.png'> 
</button> 
<script> 
function myFunctionContact(id) { 
    window.open('!!!$path should go here!!!'+id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 
</script> 

如何获取路径中的URL,以便在所需的位置显示函数内部的路径?

我试图将变量打印到一个JavaScript变量,然后将该变量放入函数中,但当我这样做时弹出窗口不再有效。

function myFunctionContact(id) { 
    var test1 = <?php echo $path; ?>; 
    window.open(test1 +id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 

我知道我做错了,但我不知道如何。任何建议将不胜感激。

+1

你打印的是;在回声结束? –

+0

这是一个错字。我会编辑修复它。 –

+0

可能的重复[如何将变量和数据从PHP传递到JavaScript?](http://stackoverflow.com/questions/23740548/how-to-pass-variables-and-data-from-php-to-javascript) – giorgio

我认为这个问题是你如何回声路径:

相反的:

var test1 = <?php echo $path; ?> 

我觉得应该是

var test1 = <?php echo '"'.$path.'";'; ?> 
+0

有没有理由它与var myValue = ; ? –

+1

json_encode返回一个带有“(双引号)”字符的字符串,这就是你的代码中缺少的东西。 –

您可以随时使用隐藏的输入字段,并将其值设置为任何您需要在JS代码中使用的值,然后在您的JS中获取该值,或者尝试ajax调用以获取所需的值。

+1

使用隐藏的输入字段是非常糟糕的做法。它虽然工作。 – giorgio

json_encode()解决了这一问题。

var myValue = <?php echo json_encode($path); ?>; 
+1

Json并不意味着要将值输入到一个javascript变量中。'json!== var' – giorgio

该路径需要带引号的字符串。回显字符串的最终结果本身必须包含引号。

假设$path是一个字符串,window.open期望引用字符串作为参数。

function myFunctionContact(id) { 
    window.open(' . $path . ' + id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 
</script>