<?php
$a ='a';
$b='b';
?>
<script type="text/javascript">
var a=<?php json_encode($a); ?>;
var b=<?php json_encode($b); ?>;
window.parent.clear(a,b);
</script>
这个明确的功能已在js中定义。当我传递一个变量时,它变得完美但是2个变量失败了。
答案 0 :(得分:2)
即使只有一个参数,我也不知道这是如何工作的,因为json_encode
调用是在JavaScript代码中,而不是PHP。
这是最小变化版本:
<?php
$a ='a';
$b='b';
?>
<script type=text/javascript>
var a=<?php echo json_encode($a)?>;
var b=<?php echo json_encode($b)?>;
window.parent.clear(a,b);
</script>
但您也可以这样做以避免创建全局a
和b
JavaScript变量:
<?php
$a ='a';
$b='b';
?>
<script type=text/javascript>
window.parent.clear(
<?php echo json_encode($a); ?>,
<?php echo json_encode($b); ?>
);
</script>
(我假设值'a'
和'b'
是占位符,而不是您的实际数据。)
或者如果您使用短标签:
<?php
$a ='a';
$b='b';
?>
<script type=text/javascript>
window.parent.clear(
<?=json_encode($a)?>,
<?=json_encode($b)?>
);
</script>
...但是很多人都没有,看起来你不是。
附注:您的script
代码无效(但如果大多数浏览器都接受,我不会感到惊讶),因为您不会在type
属性周围引用#&# 39; s值,该值包含/
。 (如果值中包含/
,则无法取消引号。)例如:
<script type=text/javascript>
<!-- Error here--^ -->
在值周围加上引号:
<script type="text/javascript">
...或者只是完全关闭type
:
<script>
...因为JavaScript是HTML5的script
的官方默认值,并且无论如何一直是所有浏览器(甚至是IE)的默认设置。
答案 1 :(得分:0)
你是如何尝试运行该代码的?...我不明白这么清楚,因为我发现你正试图直接用javascript来使用php代码?
答案 2 :(得分:0)
也许,你打算传递一个像这样的对象。
<?php
$a = array('a','b');
?>
<script type=text/javascript>
var a=<?=json_encode($a)?>;
clear(a);
</script>
如果您使用:
<?php
$a ='a';
$b='b';
?>
你不能json_encode $a
&amp; $b
因为那些不是数组。
答案 3 :(得分:0)
试试这个:
<?php
$a = array('firstVal' => 'a');
$b= array('secondVal' => 'b');
?>
<script type="text/javascript">
var a=<?php echo json_encode($a); ?>;
var b=<?php echo json_encode($b); ?>;
console.log(a.firstVal);
console.log(b.secondVal);
window.parent.clear(a,b);
</script>