2016-06-30 2 views
0

У меня есть файл PHP (GenerateJson.php), который использует json_encode для создания данных JSON из моей базы данных, я знаю, что у меня может быть тот же файл PHP, который записывается в .json-файл, но если я это сделаю что написано JSON будет содержать только данные из последнего времени GenerateJson.php запрашиваемом, и я хочу JavaScript, чтобы иметь возможность доступа данных в реальном времени на лету

в настоящее время мой код таков:

$('#search').keyup(function() { 
    var searchField = $('#search').val(); 
    var myExp = new RegExp(searchField, 'i'); 
    $.getJSON('Generated.json', function(data) { 
     var output = '<ul class="searchresult1">'; 
     $.each(data.data, function(key, val) { 
      if ((val.artists.Artist.search(myExp) != -1)) { 

       var ArtistURL = "music/abArtist.php?artist=" + encodeURIComponent(val.artists.Artist); 
       output += '<li>'; 
       output += '<a href="'+ ArtistURL +'"><h2>' + val.artists.Artist + '</h2></a>'; 
       output += '</li>'; 
      } 
     }); 
     output += '</ul>'; 
     $('#update1').html(output); 
    }); 
}); 

Когда я заменяю «Generated.json» на «GenerateJson.php»

Этот javascript не работает больше ...

Что такое хорошее и простое исправление? заставить это работать с «GenerateJson.php» и как?

Спасибо!

+0

использовать AJAX, чтобы получить JSON с сервера – user3791775

+0

, то вы должны указать в вашем PHP скрипт и генерировать данные на муха. альтернативой является добавление логики кэширования в PHP-код. 'if (json больше, чем X секунд) {сгенерировать новый json-файл}; spit out json file' –

+0

Есть ли ошибки в консоли? @MarcB –

ответ

0

Если вы хотите, чтобы получить данные в формате JSON динамически из PHP вы можете попробовать следующее

$.ajax({ 
    dataType: 'json', 
    url: 'GenerateJson.php', 
    done(function(data) { 
    var output = '<ul class="searchresult1">'; 
     $.each(data.data, function(key, val) { 
      if ((val.artists.Artist.search(myExp) != -1)) { 

       var ArtistURL = "music/abArtist.php?artist=" + encodeURIComponent(val.artists.Artist); 
       output += '<li>'; 
       output += '<a href="'+ ArtistURL +'"><h2>' + val.artists.Artist + '</h2></a>'; 
       output += '</li>'; 
      } 
     }); 
     output += '</ul>'; 
     $('#update1').html(output); 
}); 
+0

Я пробовал это, его не работает –