第一个问题
我想使用变量 don_settings[don_btn_act]
(=checkbox) 来定义按钮操作。
IF don_settings[don_btn_act] IS on
THEN -> load checkout
ELSE -> page reload
don_settings[don_btn_act]
已定义并且修改得很好,因此我可以打开或关闭它。问题是我应该在 javascript 中使用它。
到目前为止我所拥有的:
function reloadpage(){
<?php if(isset($don_config['don_btn_act']) && $don_config['don_btn_act'] =='on') { ?>
window.location.href = 'index.php?route=dcheckout/checkout';
<?php } else { ?>
window.location.reload();
<?php } ?>
}
它始终执行window.location.reload()
函数。
第二个问题
以同样的方式,我有变量don_settings[min_amount]
。我用它来定义最小输入量。
它像前面的变量一样在 php 中定义。
但我也应该在 tpl 文件的 javascript 部分使用它。
到目前为止我所拥有的:
function validation(){
if(jQuery('#opton').val() == ''){
alert("<?php echo $drop_empty_msg; ?>");
return false;
}
else if(jQuery('#don_amount').val() == '' || jQuery('#don_amount').val() == '0'){
alert("<?php echo $amount_empty; ?>");
jQuery('#don_amount').focus();
return false;
}
else{
return true;
}
}
我用
|| jQuery('#don_amount').val() <= "<?php $don_settings[min_amount]; ?>"
而不是
|| jQuery('#don_amount').val() == '0'
但每次都返回 false
最佳答案
抱歉,我无法理解您的问题或意图。尝试更正您的拼写错误和语法,并请注意漂亮的格式化代码!
尽管如此,我对编写可维护的代码有一些建议。
你的问题(#1)
如果您的浏览器始终执行window.location.reload()
,则问题与您的 JavaScript 无关。 这是您的服务器端代码失败。您的以下情况似乎是错误的:
<?php if(isset($don_config['don_btn_act']) && $don_config['don_btn_act'] =='on') { ?>
不要混合使用 javascript 和 php
首先,计算必要的值/条件:
(最好放入单独的文件中)
<?php
$condition = isset($don_config['don_btn_act']) && $don_config['don_btn_act'] =='on';
?>
现在,您可以非常舒适、清晰地使用它:
function reloadpage() {
var condition = '<?php echo $condition; ?>';
if (condition)
window.location.href = 'index.php?route=dcheckout/checkout';
else
window.location.reload();
}
有很多很大的优点可以避免弄乱你的代码。
还要小心...
...同时通过 php 将代码注入(inject)到标记/javascript 中。不要为潜在的攻击者提供新的安全漏洞!
关于javascript 并使用 php 调节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21236417/