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
と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
、値に/
. (値に a が含まれている場合、引用符を外すことはできません/
。) 例:
<script type=text/javascript>
<!-- Error here--^ -->
値を引用符で囲みます。
<script type="text/javascript">
...またはtype
完全にオフのままにします:
<script>
...as JavaScript はscript
HTML5 の時点での公式の既定値であり、常にすべてのブラウザー (IE を含む) の既定値でした。