如何在jQuery / JavaScript中正确插入PHP变量?

时间:2013-11-11 17:38:08

标签: javascript php jquery dreamweaver

此代码在运行应用程序时有效,但Dreamweaver发出语法错误。它不喜欢那里的问号。我喜欢DW语法错误。有没有不同的方式来写这个?我有DW cs5.5我无法升级Dreamweaver版本。

    if ( $('#postage6').val() == "Your Permit Standard" ) {
        $('#postage6rate').val('<?php echo $your_permit_standard; ?>');
    }

在问号之前加上反斜杠只会让它像这样打印,这是不对的。

    if ( $('#postage6').val() == "Your Permit Standard" ) {
        $('#postage6rate').val('<\?php echo $your_permit_standard; ?>');
    }

渲染时,应该有这样的值:

    if ( $('#postage6').val() == "Your Permit Standard" ) {
        $('#postage6rate').val('0.333');
    }

这也行不通:

    if ( $('#postage6').val() == "Your Permit Standard" ) {
        var somevar = "<?php echo $your_permit_standard; ?>";
        $('#postage6rate').val(somevar);
    }

语法错误只是从PHP变量所在的行转移到PHP变量所在的新行。

3 个答案:

答案 0 :(得分:5)

您可以在单独的php块中定义值:

<script type="text/javascript">
   var value = '<?=$your_permit_standard?>';
</script>

然后在你的JS中使用它:

if ( $('#postage6').val() == "Your Permit Standard" ) {
    $('#postage6rate').val(value);
}

但是你会在PHP中引入JS依赖,我不建议这样做,但是既然你要混合两者......

答案 1 :(得分:1)

在使用PHP设置.val()方法参数后,看起来您正在使用JavaScript设置输入值。为什么不直接用PHP设置输入值?

<input type="text" name="postage6rate" value="<?php echo $your_permit_standard; ?>">

如果您需要在页面加载以外的某个时间运行此脚本,则可以将数据绑定到具有data属性的元素。

<input type="text" name="postage6rate" data-permit="<?php echo $your_permit_standard; ?>">

然后当你需要运行你的脚本时......

window.addEventListener('onSomeEvent', function addTheData() {
  var $input = $('input[name="postage6rate"]');
  $input.val($input.data('permit'));
});

答案 2 :(得分:0)

我认为您的javascript不符合PHP文件中的内容,阻止PHP执行

尝试:

<?php 
$your_permit_standard = "0.335";
?>
<html>
  <body>
    <input id="postage6" name="postage6" value="Your Permit Standard"/>
    <input id="postage6rate" name="postage6rate"/>
    <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
    <script>
    if ( $('#postage6').val() == "Your Permit Standard" ) {
        $('#postage6rate').val('<?php echo $your_permit_standard; ?>');
    }
    </script>
  </body>
<html>

这是working example