2014-11-11 3 views
0

Я пытаюсь использовать getJSON для извлечения данных из файла PHP, однако, когда я передаю «данные», вызов $ _POST, похоже, не извлекает никаких данных.

function runJSON(network,searchType){ 
     var URL  = returnURL(network,searchType,$('#song_field').val().split(' ').join("+")); 

    var val = $('#song_field').val(); 
    var data = {val: val} 

    $.getJSON(URL, val, function(data){ 
     if(document.getElementById("box") !== "undefined"){ 
      clearScreen(); 
      createCols(); 
     } 

     songList = []; 
     console.log(data); 
     eval(network + "(data);"); 

     for(i = 0; i < songList.length; i++) 
     { 
      displayTrack(i); 
     } 

     done = true; 

    }); 
} 

PHP файл:

<?php 
    $input = $_POST["val"]; 
    $url = "http://api.7digital.com/1.2/track/search?q=" . $input . "&oauth_consumer_key=myconsumerkey&country=GB&pagesize=2"; 

    $data = simplexml_load_file($url); 
    $json = json_encode($data); 
    echo ($json); 
?> 
+0

вы можете проверить, что $ данных содержит то, что вы ожидаете в вашем коде PHP? –

+0

вы можете добавить json, сгенерированный файлом php? – andufo

+1

'getJSON()' всегда отправляет запрос GET. '$ _POST' включает только значения из запросов POST. Вы хотите '$ _GET'. –

ответ

2

ваш $.getJSON вызов должен пройти в data не val:

$.getJSON(URL, val, function(data){ 

должен быть

$.getJSON(URL, data, function(data){ 

и ваши тела р следует использовать $_GET не $_POST

$input = $_POST["val"]; 

должен быть

$input = $_GET["val"]; 
+0

Это то, чего я ожидал, но я действительно не знал, как работает getJSON. Благодаря! –

+0

Рад помочь! Удачи! –

1

Вы используете getJSON в неправильном направлении,

var val = $('#song_field').val(); 

$.getJSON(URL, {val: val}, function(data){ //<- Note how data passed 

Кроме того, getJSON использует GET метод так в PHP, используйте $_GET или $_REQUEST, т.е.

$_REQUEST['val'] 

или

$_GET['val'] 

Документация:http://api.jquery.com/jquery.getjson/