在我们的网页中,我们需要访问javascript代码中的PHP变量。具体来说,我们需要传递一个参数,该参数是由名为$ link_es
的PHP变量定义的URL我已经尝试过这样做了
var r_obj = {
"Company": { "CompanyId": xxxxxx },
"RatingboxId": xxxxx,
"ProductCode": encodeURIComponent($link_es),
其中$ link_es是存储在我们需要作为参数传递的变量中的URL。
我怎么能传递那个参数?也就是说,我怎样才能将PHP变量转换为Javascript变量?谢谢。
PD:我使用的是Smarty PHP,因此可能存在一些问题。答案 0 :(得分:1)
如果脚本在tpl文件中,那就像分配给javascript变量一样简单:
<script>
var link_es = '{$link_es}';
//do whatever you want with it
alert(link_es);
</script>
确保javascript代码不在{literal}标签之间,但
答案 1 :(得分:0)
只需添加此1) n[i] is divisible by 2 only
2) n[i] is divisible by 3 only
3) n[i] is divisible by 5 only
4) n[i] is divisible by 2 and 3
5) n[i] is divisible by 3 and 5
6) n[i] is divisible by 2 and 5
7) n[i] is divisible by 2, 3 and 5
即可将变量反映到javascript中。
答案 2 :(得分:0)
尝试制作一个预定义的javascript变量,其值由PHP设置
<script>
var link_es = "<?php echo $link_es ?>";
</script>
答案 3 :(得分:0)
尝试
"ProductCode": encodeURIComponent(<?= $link_es ?>)
答案 4 :(得分:0)
一种方法是在PHP文件中使用类似的东西:
<script>
var myVar = <?php echo $link_es; ?>;
</script>
答案 5 :(得分:0)
在这种情况下,您可以按照以下方式工作:
在PHP文件中添加以下代码
<script>
var jsVariable = <?php echo $phpVariable ?>;
</script>
在js文件中可以简单地访问变量,如下所示:
console.log(jsVariable);
如果你想首先传递一个数组应该是json_encode,如下所示:
<script>
var jsVariable = <?php echo json_encode($phpVariable) ?>;
</script>
在这种情况下,您在javascript中有一个对象,并使用console.log
进行跟踪答案 6 :(得分:0)
案例1 如果您在Php页面上编写javascript,那么您可以使用传递它
"ProductCode": encodeURIComponent('<?= $link_es ?>'),
案例2 如果您有单独的javascript文件,那么您必须在php文件中定义全局变量,然后您可以在js文件中访问它。
<script>
var jsVariable = <?php echo json_encode($link_es) ?>;
</script>
在案例2中,我个人习惯将这个值存储在隐藏字段中,并带有一些id然后我在js文件中使用它
<input type="hidden" id="link_es" value="<?= $link_es ?>" />
//then in js file access like this
"ProductCode": encodeURIComponent($("#link_es").val()),
答案 7 :(得分:0)
我自己终于找到了解决方案。它由以下内容组成:
首先,我们包含一个div标签,如下所示
<div id='linkespanol' style="display: none;">
{$link_es}
</div>
稍后,在脚本内部,我们可以访问完整的URL
var a = window.location.href.split("/")[0];
var b = window.location.href.split("/")[2];
var c = a+"//"+b;
var linkidioma = c+document.getElementById('linkespanol').textContent.trim();
变量$ link_es不包含完整的URL,但是/es/productCode.html为了生成完整的URL,我使用window.location.href从当前URL获取我想要的内容,最后连接两者。我使用trim来摆脱一些空白。
它可能是一个非常糟糕的解决方案,但有效。可能,不使用Smarty,可能会有一种更简单的方式。
答案 8 :(得分:-1)
没有一个建议的答案有帮助,我最终这样做了。
var data= JSON.parse('{$data|@json_encode|@addslashes}');