使用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在客户端上执行
在PHPif
语句中,您只包括在加载页面时(异步)执行的函数调用
根据一些用户交互,您需要在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(); }