javascript 并使用 php 调节

标签 javascript php conditional-statements

第一个问题

我想使用变量 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/

相关文章:

javascript - 如何停止文本重叠文本区域

javascript - ViewController 和 Enyo

php - 什么是客户端准备好的语句?

php - 无法将外键值插入链接表

javascript - 在简单函数或条件中组合 4 个 bool 值

javascript - 模态窗口上的标签标签不起作用

javascript - 使用 AJAX 从 MongoDB 获取用户信息

php - Laravel5 Eloquent 从带有 where 子句的多个表中选择

python - 或者列表理解中的条件

c++ - 根据两个属性对类指针的 vector 进行排序?