2016-10-03 127 views
0

我试图在Javascript中传递一个PHP变量,它不起作用。请找到我使用的代码如下:在Javascript中传递PHP变量

function delete_id(id) 
{ 
    if(confirm('Are you sure you want to permanently delete this record?')) 
    { 
     window.location.href='index.php?cabinet_id_delete='+id+'&estimate_id=<?php echo $estimate_id; ?>'; 
    } 
} 

也许我需要编辑调用JS的代码?这里是它:

<a href='javascript:delete_id(".$rows['estimates_cabinet_id'].")'>DELETE</a> 

任何人都可以看到我需要做什么来得到这个工作?

感谢,

约翰

+1

这应该工作。 $ estimate_id来自哪里?或者现在(错误的)输出是什么? – Jeff

+1

如果你的变量名是正确的,并且这是在一个php页面中,那么应该工作......不只是一个JavaScript文件。可能需要一些更多信息? –

+0

$ estimate_id设置在页面的顶部。这是生成的链接 - index.php?cabinet_id_delete = 10&estimate_id =%3C?php%20echo%20 $ estimate_id;%20?%3E –

回答

0

根据你评论它看起来像你有一个合法的PHP脚本,其中你链接到一个js文件(通过<script src=...>)。

在这样一个js文件里面的php将不会被执行为php,而是直接发送到浏览器。

所以最简单的办法是移动是JS代码到你的php文件,在这里你输出HTML:

<?php 
$estimate_id=1; 
?> 
<html> 
<script> 
function delete_id(id) 
{ 
    if(confirm('Are you sure you want to permanently delete this record?')) 
    { 
     window.location.href='index.php?cabinet_id_delete='+id+'&estimate_id=<?php echo $estimate_id; ?>'; 
    } 
} 
</script> 
<?php 
// more php... 
?> 

另一种解决办法是让你的服务器上执行JS-文件作为PHP。
这可能很棘手(你不能简单地通过参数,你有更高的安全风险),但会工作 - 我不会建议。

+0

@ AidanGee的解决方案是另一个很好的解决方案! – Jeff

2

您将无法从JavaScript文件中使用php。一些常见的方法来“传递变量”的JavaScript可能是打印出来的HTML页面:

的index.html

<script> 
    var estimate_id = <?php echo $estimate_id; ?>; 
</script> 

main.js

esitmate_id现在可以作为一个全局变量。

function delete_id(id) 
{ 
    if(confirm('Are you sure you want to permanently delete this record?')) 
    { 
    window.location.href='index.php?cabinet_id_delete='+id+'&estimate_id='+estimate_id; 
    } 
} 

或者你可以只使用当前的代码在index.php文件中的脚本标记

+0

很好的解决方案! (实际上比我好...) – Jeff