json_encode呼び出しは PHP ではなく JavaScript コード内にあるため、単一のパラメーターを使用してもそれがどのように機能するかわかりません。
最小限の変更バージョンは次のとおりです。
<?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とbJavaScript 変数を作成しないようにするために、次のようにすることもできます。
<?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、値に/. (値に a が含まれている場合、引用符を外すことはできません/。) 例:
<script type=text/javascript>
<!-- Error here--^ -->
値を引用符で囲みます。
<script type="text/javascript">
...またはtype完全にオフのままにします:
<script>
...as JavaScript はscriptHTML5 の時点での公式の既定値であり、常にすべてのブラウザー (IE を含む) の既定値でした。