php代码“<! - ?=”以js格式 - >

时间:2011-09-30 02:56:08

标签: php javascript

此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>

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

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

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

别。使其成为.js.php文件,返回内容类型text/javascript,并包含其他相关的PHP脚本。

答案 1 :(得分:2)

插入PHP和JavaScript是一大堆蠕虫,你应该避免打开。 IMO处理此问题的最佳方法是使用PHP输出JSON对象which it has built-in support for,然后在JavaScript中使用该对象。这样,您只需将一小段PHP放在<script>标记中,您就不必尝试将服务器解析为.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>

然后,在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
      }
    );
  });
}