【问题标题】:Can I have a php if statement inside a jquery script in Drupal 7?我可以在 Drupal 7 的 jquery 脚本中使用 php if 语句吗?
【发布时间】:2016-03-09 17:30:59
【问题描述】:

我有一个 jquery 脚本,可以在准备好的文档上加载,如果用户已经点击了一个按钮(按钮字段),我想显示一个隐藏的弹出窗口。但我检查的条件是使用 php 代码。

<script>
$( document ).ready(function() {
  if (<?php $user_fields->field_button['und'][0]['value'] = 1 ?>) {
    var popup = document.getElementById("testpopup1").style.visibility = "visible";
    alert("x");
  }
});
</script>

但是这种方式行不通。有没有办法将 php 代码放在我的 jquery 代码的 if 语句中,或者我必须尝试其他方法?

【问题讨论】:

    标签: javascript php jquery drupal-7


    【解决方案1】:

    您不需要 Javascript 来执行 if 和所有操作。

    在您的 HTML 中

    <?php if ($user_fields->field_button['und'][0]['value'] === 1) { ?>
    
        <div id="testpopup1">Your content</div>
    
        <script>alert('x');</script>
    
    <?php } ?>
    

    【讨论】:

    • 和onload函数呢?php标签应该在if语句的开头和结尾都有吧?我在 node--XX.tpl.php 文件中有这段代码
    • 好的,我明白了!您只错过了 if 语句中的“=1”,但它完全有效。我混合了js和php,我搞砸了,但你的回答奏效了!
    • $(document).ready() 在这里是不必要的,因为您甚至没有在 JavaScript 中使用 jQuery。如果有帮助,请不要忘记投票并将答案标记为已解决;)
    • 我无法投票,因为我缺乏声誉,但我将其标记为已解决!
    • 实际上,div 和脚本在两种情况下都会加载,即使值为 1 而不是
    【解决方案2】:

    将 PHP 值的值保存在 Javascript 变量中。

    $(document).ready(function() {
      var undValue = <?= $user_fields->field_button['und'][0]['value'] ?>;
      if (undValue === 1) {
        document.getElementById('testpopup1').style.visiblity = 'visible';
        alert('x');
      }
    });
    

    【讨论】:

    • 我对php了解不多,但是我觉得=部分是错误的,对吧?我应该用
    • 其实&lt;?=等价于&lt;?php,两者都可以使用。但我建议你明确并使用&lt;?php
    • @ArgirisA 这是&lt;?php echo 的简写。它绝对有效。
    猜你喜欢
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    相关资源
    最近更新 更多