2017-07-14 25 views
0

JavaScriptを習得しようとしています。javascriptはPHPからブール値またはnullを受け付けません

<script> 
    window.variable = { 
    a: , 
    b:  } 

    console.log(variable); 
</script> 

<?php 
    $a = true; 
    $b = false; 
?> 


<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
    <script> 
     window.variable = { 
      a: <?php $a ? true : false ?>, 
      b: <?php $b ? 1 : null ?> 
     } 

     console.log(variable); 
    </script> 
</body> 
</html> 

Javascriptが私はUncaught SyntaxError: Unexpected token ,を取得していますし、それはクロームのdevのツールで次のように表示しているtruefasle1またはnull を受け付けていません:私は、次のコードを持っていますどこが間違っていますか?

+0

値をエコーする必要があります。 –

+0

あなたのPHP変数はjson_encodedにする必要があります。E.G 'a:<?php echo json_encode($ a)?正誤; ?>、 ' – GrumpyCrouton

+0

' 'タグはPHPのみを実行するためのタグです。ドキュメントに何も出力しません。 [echoまたは](http://php.net/manual/fr/function.echo.php)を使用する必要があります。 – litelite

答えて

1
a: <?php $a ? true : false ?>, 
b: <?php $b ? 1 : null ?> 

まず、あなたは何も出力しないです。あなたはechoものが必要です。

第2に、falseの文字列表現は空の文字列です。 nullの場合も同じです。したがって、echoであっても、$a$bのいくつかの値と、同じJS構文エラーで空の出力が得られます。

あなたは文字列を出力することで出力を修正することができます、真偽、およびヌル:

a: <?php echo $a ? 'true' : 'false' ?>, 
b: <?php echo $b ? 1 : 'null' ?> 

が、より弾力的なアプローチのための

は、あなたがJavaScriptで使用するために出力していることから、json_encodeを代わりに使用します。

window.variable = <?php echo json_encode([ 
    'a' => $a ? true : false, 
    'b' => $b ? 1 : null, 
]); ?>; 
0:

a: <?php echo json_encode($a ? true : false) ?>, 
b: <?php echo json_encode($b ? 1 : null) ?> 

または、より良いは、PHPの出力に全体のJSオブジェクトを持っています

0

テキストを作成していることを忘れないでください。正しい値を文字列として出力するには "echo"を使います。

<?php 
    $a = true; 
    $b = false; 
?> 


<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
    <script> 
     window.variable = { 
      a: <?php echo $a ? "true" : "false" ?>, 
      b: <?php echo $b ? "1" : "null" ?> 
     } 

     console.log(variable); 
    </script> 
</body> 
</html> 
関連する問題