2016-03-19 47 views
-1

我是Stackoverflow的新用戶。我的問題是將JSON與PHP轉換爲JavaScript。我抓取數據庫使用PHP來創建JSON,我想轉換爲JavaScript的JSON。我想在JavaScript中使用JSON作爲對象(object [1] .id)。我需要你幫忙。將JSON與PHP轉換爲JavaScript

<?php 
    $connent = new mysqli('localhost','root','lukasz1248','quiz'); 
    if ($connent->connect_error != 0) 
    { 
    throw new Exception(mysqli_connect_errno()); 
    } 
    $connent->query('SET NAMES utf8'); 
    $connent->query('SET CHARACTER_SET utf8_unicode_ci'); 
    $result = $connent->query("select * from pytania"); 

    //put all of the resulting names into a PHP array 
    $jsonArray = Array(); 
    //$how = $result->num_rows; 
    //$row = $result->fetch_assoc(); 

    //$row_array = "["; 
    while ($row = $result->fetch_assoc()) { 

    $row_array['id'] = $row['id']; 
    $row_array['tresc'] = $row['tresc']; 
    $row_array['odpa'] = $row['odpa']; 
    $row_array['odpb'] = $row['odpb']; 
    $row_array['odpc'] = $row['odpc']; 
    $row_array['odpd'] = $row['odpd']; 
    $row_array['answer'] = $row['answer']; 
    $row_array['kategoria'] = $row['kategoria']; 
    $row_array['rok'] = $row['rok']; 

    array_push($jsonArray,$row_array); 
    } 
    echo $jsonArray = json_encode($jsonArray,JSON_UNESCAPED_UNICODE); 

    $connent->close(); 
?> 
    <script type="text/javascript"> 
    var json_array = json_encode('<?php echo $jsonArray ?>') 

    window.onload = write; 

    var obj_json = JSON.parse(json_array); 

    function write(){ 
    document.getElementById('db').innerHTML = obj_json.length; 
    } 
</script> 
<div id="db"></div> 

我改成了:

<script type="text/javascript"> 
    var json_array = '<?php echo $jsonArray ?>'; 

    window.onload = write; 

    var str = " "; 
    var obj_json = JSON.parse(json_array); 

    function write(){ 
    document.getElementById('db').innerHTML = obj_json.length; 
    } 
</script> 
<div id="db"></div> 

function write(){ 
    document.getElementById('db').innerHTML = obj_json.length; 
} 

結果應該是20日結束我的網站http://158.75.89.214/js/test.php

回答

2

您正在對它進行兩次編碼。

首位

echo $jsonArray = json_encode($jsonArray,JSON_UNESCAPED_UNICODE); 
var json_array = json_encode('<?php echo $jsonArray ?>') 

改成這樣一個

var json_array = <?php echo $jsonArray ?>; 
+0

我改變了它。不工作! –

+0

更改爲最後聲明? –

1

JSON已經是Javascript代碼,但我們需要將它輸出到JavaScript,這樣

<script type="text/javascript> 
    var foo = <?php echo json_encode($bar); ?>; 
</script> 

它將它包裝到括號中也是有用的,以確保Javascript能夠理解t這是一個對象,而不是一個塊,例如,無論它在哪裏使用。

function getJSON($obj) { 
    return '('.json_encode($obj).')'; 
} 

然後用這個。