Php 如何通过javascript传递多个参数? 变量a=; var b=; 窗口。父级。清除(a,b);
这个clear函数已经在js中定义了。当我传递一个变量时,它运行正常,但有两个变量失败。我看不出哪怕只有一个参数也能工作,因为您的Php 如何通过javascript传递多个参数? 变量a=; var b=; 窗口。父级。清除(a,b);,php,javascript,Php,Javascript,这个clear函数已经在js中定义了。当我传递一个变量时,它运行正常,但有两个变量失败。我看不出哪怕只有一个参数也能工作,因为您的json\u encode调用在JavaScript代码中,而不是PHP中 以下是最小更改版本: <?php $a ='a'; $b='b'; ?> <script type="text/javascript"> var a=<?php json_encode($a); ?>; var b=<
json\u encode
调用在JavaScript代码中,而不是PHP中
以下是最小更改版本:
<?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>
(我假设值'a'
和'b'
是占位符,而不是实际数据。)
或者如果您使用短标签:
<?php
$a ='a';
$b='b';
?>
<script type=text/javascript>
window.parent.clear(
<?php echo json_encode($a); ?>,
<?php echo json_encode($b); ?>
);
</script>
在值周围加引号:
<script type=text/javascript>
<!-- Error here--^ -->
…因为JavaScript是HTML5的
脚本的官方默认值,并且一直是所有浏览器(甚至IE)的默认值。您是如何运行代码的?…我不太清楚,因为我看到您试图将php代码直接用于JavaScript?可能,你想要传递一个像这样的物体
<script>
变量a=;
清楚(a);
如果您使用:
<?php
$a = array('a','b');
?>
<script type=text/javascript>
var a=<?=json_encode($a)?>;
clear(a);
</script>
您不能对$a
&$b
进行json_编码,因为它们不是数组。请尝试以下操作:
<?php
$a ='a';
$b='b';
?>
变量a=;
var b=;
console.log(a.firstVal);
console.log(b.secondVal);
窗口。父级。清除(a,b);
请在开始时忽略e,这没什么@Ashish:您可以使用问题下的“编辑”链接来更正问题。您会遇到什么错误?你能发布clear函数吗;var b=您必须显示,clear()
应该做什么。@AshishPandey:是的,但它不在PHP部分。它只是在JavaScript中。如果没有
,该文本将直接发送到浏览器(在那里它将失败,因为JavaScript引擎没有json\u encode
函数,如果有,它就不会有变量$a
或$b
)。嘿,我已经更正了!但它似乎仍然不起作用,我在js文件中用多个参数声明了clear Function,所以声明不应该是一个problem@AshishPandey:我从未说过函数声明有问题。你是在说我对脚本标签的看法吗?这绝对是错误的。正如我所说,浏览器可能会接受它,但你应该修复它。@AshishPandey:希望这有帮助!如果答案是其他的,最好的办法是把你自己的答案贴在你的问题上(这在这里很好),然后在允许的时候接受(两天后)。
<script>
<?php
$a = array('a','b');
?>
<script type=text/javascript>
var a=<?=json_encode($a)?>;
clear(a);
</script>
<?php
$a ='a';
$b='b';
?>
<?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>