$ _POST没有获取值(getJSON)

时间:2014-11-11 19:23:33

标签: php jquery json post getjson

我正在尝试使用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);
?>

2 个答案:

答案 0 :(得分:2)

您的$.getJSON来电应该通过data而不是val

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

应该是

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

你的php应该使用$_GET而不是$_POST

$input = $_POST["val"];

应该是

$input = $_GET["val"];

答案 1 :(得分: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/