-4
<?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>

この clear 関数は js で既に定義されています。単一の変数を渡すと完璧になりますが、2 つの変数を渡すと失敗します。

4

4 に答える 4

2

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>

ただし、これらのグローバル変数abJavaScript 変数を作成しないようにするために、次のようにすることもできます。

<?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 を含む) の既定値でした。

于 2013-03-25T09:11:21.413 に答える
0

そのコードをどのように実行しようとしていますか?...JavaScriptでphpコードを直接使用しようとしているように見えるので、はっきりとはわかりませんか?

于 2013-03-25T09:13:50.830 に答える
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>
于 2013-03-25T09:47:38.950 に答える
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&はできません$b

于 2013-03-25T09:16:56.160 に答える