使用PHP调用Javascript函数

使用PHP调用Javascript函数,javascript,php,Javascript,Php,这个代码有什么问题?它没有任何作用 到目前为止,$\u GET运行良好,从服务器端接收所有返回值。所有数据均可用:$_GET['PNREF'];&$_获取['EMAIL'];当数据在if语句之外时,接收数据会很好 <?php if($_GET['RESPMSG'] != "Approved"){ echo '<script type="text/javascript">', 'declined();', '</script>'; }el

这个代码有什么问题?它没有任何作用

到目前为止,
$\u GET
运行良好,从服务器端接收所有返回值。所有数据均可用:$_GET['PNREF'];&$_获取['EMAIL'];当数据在if语句之外时,接收数据会很好

<?php

if($_GET['RESPMSG'] != "Approved"){

    echo '<script type="text/javascript">',
    'declined();',
    '</script>';

}else{

    echo '<script type="text/javascript">',
    'approved();',
    '</script>';

    $tranid  = $_GET['PNREF'];
    $email   = $_GET['EMAIL'];
}

?>

我正在尝试访问位于


职能批准(){
警报(“批准的职能”);
document.getElementById('oops_id').style.display=“无”;
document.getElementById('thank_id').style.display=“block”;
}
函数(){
警报(“已拒绝的func”);
document.getElementById('thank_id').style.display=“无”;
document.getElementById('oops_id').style.display=“block”;
}

我不希望您的脚本有任何动作

PHP在服务器上执行,而Javascript在客户端上执行

在PHP
if
语句中,您只包括在加载页面时(异步)执行的函数调用

根据一些用户交互,您需要在JavaScript脚本中调用
谢绝()
批准()
函数


我需要看到更多的代码来提出更多的建议。

您可能需要重新思考如何实现这一点:一种方法是直接根据请求变量将元素的样式标记为“display:none”或“display:block”

<?php
    $declined = $_GET['RESPMSG'] != 'Approved';
?>

然后在html中:

<div id="thank_id" style="display: <?php echo $declined ? "none" : "block"; ?>;">
    <!-- thank div contents here -->
</div>
<div id="oop_id" style="display: <?php echo $declined ? "block" : "none"; ?>;">
    <!-- oop div contents here -->
</div>
您的最终html(由PHP生成)是什么样子的

我猜,当方法被调用时,php if的声明在最前面,javascript方法声明在最下面

那么你有两个选择

  • 将approved()和declined()移到顶部,在php之前,如果

  • 更恰当地使用


  • 或者试试这个

    <?php
    
    echo '<script type="text/javascript">var resp =' + $_GET['RESPMSG'] + '</script>';
    if($_GET['RESPMSG'] == "Approved"){
        $tranid  = $_GET['PNREF'];
        $email   = $_GET['EMAIL'];
    }
    
    ?>
    

    这两个JS函数是如何包含在页面中的?只需将它们放在主体中的标记之间。什么主体?你的问题中没有提到这一点。PHP if/else在页面的何处输出对函数的调用?这需要在函数本身之后。调试控制台中没有可见的内容吗?是否有任何代码实际显示在浏览器的源代码中?您提供的上下文太少,甚至无法判断这是否仅仅是PHP中的语法错误或其他错误。此表单确实成功地从$\u GET接收数据-我已经测试过了。我确信$_获得['PNREF'];&$_获取['EMAIL'];接收值。所以我希望我的问题只是在一个糟糕的if语句中。是的,但是你需要一个JavaScript脚本来调用函数。您当前只有PHP包含函数调用。例如,您可以选择一个按钮,在单击时显示
    事件,然后调用相应的函数。这只会发生在客户端(在web浏览器中)。不会将任何内容发送回PHP进行处理。请查看客户机-服务器模型:更新的问题,以便我的代码看起来正常?没有错误?只有你认为它会起作用的地方,只有代码的地方,是的。我的编辑添加更多示例你完全正确,这都是关于放置的。一个简单的解决方案。我不知道为什么有些答案很复杂。谢谢谢谢@Cubis,我会尽量简化我的建议。
    
    <body onLoad="<?php echo $declined ? "declined();" : "accepted();"; ?>">
    
    <?php
    
    echo '<script type="text/javascript">var resp =' + $_GET['RESPMSG'] + '</script>';
    if($_GET['RESPMSG'] == "Approved"){
        $tranid  = $_GET['PNREF'];
        $email   = $_GET['EMAIL'];
    }
    
    ?>
    
    function approved(){
       alert("approved func");
       document.getElementById('oops_id').style.display = "none";
       document.getElementById('thank_id').style.display = "block";
    
    }
    function declined(){
       alert("declined func");
       document.getElementById('thank_id').style.display = "none";
       document.getElementById('oops_id').style.display = "block";
    }
    if(resp == "Approved") { approved(); } else { declined(); }