PHP代码"<?js格式

php code "<?=" in js format

本文关键字:js 格式 quot PHP 代码      更新时间:2023-09-26

此JavaScript代码位于PHP文件中,我需要将此JS代码放入.js文件中。

<script>
  $j(".fresh").click(function(){
    $j(this).html('<span><?php echo $this->lang_arr['my_new_func']; ?></span>');
    $j.post(  "<?= site_url('website/func_resh') ?>",
              { id          : "<?= $webfun_one_arr[id] ?>",
                website_id  : "<?= $web_one_arr[id] ?>"
              }
    );
  })
</script>

我知道这个代码<?php echo $this->lang_arr['my_new_func']; ?>在JavaScript格式是{$this->lang_arr['my_new_func'];}

但我不知道如何将<?= site_url('website/func_resh') ?><?= $webfun_one_arr[id] ?>转换为JS格式。

谢谢你的回答

插入PHP和JavaScript是一个巨大的蠕虫罐头,你应该避免打开。在我看来,处理这个问题的最佳方法是使用PHP输出一个JSON对象,它具有内置支持,然后在JavaScript中使用该对象。这样,您只需要在<script>标记中放入一小段PHP代码,而不必尝试让服务器将.js文件解析为PHP。像这样:

在你的PHP中:

<?php $my_vals = array(
        'myNewFunc'     => $this->lang_arr['my_new_func'],
        'postUrl'       => site_url('website/func_resh'),
        'postId'        => $webfun_one_arr['id'],
        'postWebsiteId' => $web_one_arr['id']
      );
?>
<script>
  $j.getScript('/path/to/your_script.js', function() {
    myFunc(<%= json_encode($my_vals); %>); // turns your PHP array into a
  });                                      // JavaScript object automatically
</script>

Then,在your_script.js中:

// Look, Ma, no PHP!
function myFunc(someJson) {
  $j(".fresh").click(function(){
    $j(this).html('<span>' + someJson.myNewFunc + '</span>');
    $j.post( someJson.postUrl,
      { id          : someJson.postId,
        website_id  : someJson.postWebsiteId
      }
    );
  });
}

不要。将其设置为返回text/javascript内容类型的.js.php文件,并包含其他相关的PHP脚本。