2015-03-30 2 views
0

Я использую эту небольшую функцию JSON с базой данных.Нежелательный ответ JSON

<script> 
$(document).ready(function() { 
    var url = "Database.php"; 
    $("#jsondata tbody").html(""); 
    $.getJSON(url, function (data) { 
     $.each(data.users, function (i, user) { 
      var songdetails = "<p>" 
        + "<p>" + user.Title + "</p>" 
        + "<p>" + user.ArtistNumber + "</p>" 
        + "<p>" + user.TrackTime + "</p>" 
        + "<p>" + user.Composer + "</p>" 
        + "<p>" + user.Lyricist + "</p>" 
       + "</p>"; 

      $(songdetails).appendTo("songlist"); 

     }); 
    }); 
}); 
</script> 

Это может быть сделано в браузере, который мне не нужен.

{ "пользователи": [{ "Название": "Все равно", "ArtistNumber": "2", "TrackTime": "167", "Композитор": "Джон Глазурь", "Лирик" : «Kellee Maize», «FileLocation»: «public/Anyway.mp3», «rated»: «0», «score»: «[0,0,0,0,0]», «free»: 0 "}, {" Название ":« Один Путь Heartbeats »,« ArtistNumber »:« 4 »,« TrackTime »:« 187 »,« Композитор »:« Билл Бобс »,« Лирист »:« Майкл McEachern », "FileLocation": "публичный/OneWayHeartbeats.mp3", "рейтинг": "0", "оценки": "[0,0,0,0,0]", "свободный": "0"}, { «Название»: «Параллельно Me», «ArtistNumber»: «3», «TrackTime»: «192», «Composer»: «Довольно Революция», «Лирист»: «Довольно Революция», «FileLocation»: «частный/ParallelMe. mp3 "," rated ":" 0 "," score ":" [0,0,0,0,0] "," free ":" 1 "}, {" Title ":" Poisoned Oxygen "," ArtistNumber ":« 3 »,« TrackTime »:« 177 »,« Композитор »:« Довольно Революция »,« Лирист »:« Довольно Революция »,« FileLocation »:« public/PoisonedOxygen.mp3 », : «0», «score»: «[0,0,0,0,0]», «free»: «0»}, {«Title»: «Xmas « Тюремный блюз »,« ArtistNumber »:« 1 »,« TrackTime »:« 192 »,« Composer »:« Steve Perry »,« Lyricist »:« Steve Perry »,« FileLocation »:« private/XmasPrisonBlues.wma »,« rated »:« 0 », «баллы»: «[0,0,0,0,0]», «бесплатно»: «1»}]}

Любые идеи о том, как скрыть или удалить его из подрастающего? Благодаря

Это database.php:

<?php 

$Hostserver = "localhost"; 
$databUser = "ee2800"; 
$databPass = "secret"; 
$databDatabase = "ee2800"; 

$database = new mysqli ($Hostserver, $databUser, $databPass, $databDatabase); 

if ($database) { 
mysqli_select_db($database, "ee2800"); 
//echo ("Successfully connected to database!"); 
} else { 
    die ("<strong>Error:</strong> Failed to connect to the database."); 
} 

$var = array(); 

$sql = "SELECT * FROM songs"; 

$result = mysqli_query($database, $sql); 

while ($obj = mysqli_fetch_object($result)) { 

    $var[] = $obj; 
} 

echo '{"users":' . json_encode($var) . '}'; 
?> 

Использование JQuery 1.10.2 элемент найден Список песен Технический райдер здесь

<?php 
      // The system queries the database to obtain a result set containing no more than 10 artists // 
      if ($result = $database->query("SELECT * FROM `artist` ORDER BY `artist`.`ArtistNumber` ASC LIMIT 10")) { 
       while ($row = $result->fetch_row()) { 
        echo "<div id='artist{$row[2]}'>"; 
        echo "<p>Artist: {$row[0]} {$row[1]}</p>"; 
        echo '<p><a href="#Songs" id="song' . $row[2] . '"><div id= songlist> </div> </a></p>'; 
      //div tag 'songlist' adds all data from json and pastes into this div id // 
      //  echo '<p><a href="#" id="songlist' . $row[2] . '">Songs</a></p>'; 
     //onlick function echo'd anchor tag// 
        echo "</div>"; 
// Songs dont display onclick however retrieved data using jSON can't seem to target where to put the information // 
       } 
      } 
      $database->close(); 
     ?> 

И в основном всякий раз, когда я бегу эти файлы, я понимаю, что long string, который я указывал в начале в качестве ответа в браузере каждый раз.

+0

Можем ли мы иметь 'Database.php'? – D4V1D

+0

База данных отредактирована в вопрос сейчас. – Hamski

+0

Редактировать свой вопрос при правильном форматировании кода. – D4V1D

ответ

0

Ну, ваш PHP, кажется, возвращает допустимую строку json, но он автоматически не закрывается для json-объекта, так что он может обрабатываться javascript как объект.

Вы могли бы попытаться заставить разобрана в объект JSON, как этот

$.getJSON(url, function (data) { 
    data = $.parseJSON(data); 
    $.each(data.users, function (i, user) { 
+0

'$ .getJSON' уже разбирает его, не нужно делать это дважды. _ «Обратный вызов успеха передается возвращаемым данным, который обычно является объектом или массивом JavaScript» _ http://api.jquery.com/jquery.getjson/ – blex

+0

@blex Я знаю, что это должно происходить, но как вы объяснить исходную строку json, создаваемую в HTML? – RiggsFolly

+0

_I думаю, проблема связана с PHP, а не с JS. Поскольку ничто в его JS не приведет к тому, что JSON волшебным образом появится на странице (если он не разбирается, он просто терпит неудачу, а не распечатает его на странице, как есть). – blex

Смежные вопросы