使用slim不从服务器获取数据。

时间:2013-11-28 13:00:22

标签: jquery json slim

我无法同时使用两个get请求从服务器获取任何数据。 我的苗条代码:

$app->get('/stravaigers', 'getTowns');

$app->get('/stravaigers', 'searchAdmin');

及其相关代码

function getTowns() {
    $sql = "select distinct town from members where role='Member' order by town asc";
    try {
        $db = getConnection();
        $stmt = $db->query($sql);
        $town = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($town);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}';
    }
}


function searchAdmin() {

    $querytype=$_GET['querytype'];
    $querystring=trim($_GET['querystring']);
    //$querystring=trim($querystring);

    switch ($querytype)
    {
        case 1:
            $sql = "select * from members where role='member' and SUBSTRinG(lname, 1, 1) = '$querystring'";
            break;
        case 2:
            $sql = "select * from members where role='member'";
            break;
        case 3:
            $sql = "select * from members where role='member' and status = '$querystring'";
            break;
        case 4:
            $sql = "select * from members where role='member' and town = '$querystring'";
            break;
    }
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);
        $stmt->execute();
        $myjson = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($myjson);      
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}';
    }
}

之前我从未使用过slim或者之前的php。 java脚本中的函数如下:

function getTowns() { 
    $.ajax({
        type:"GET",
        url: rootURL, dataType:'json', 
        success: function(towns){ 
        $("#mytable").append('<tr><th>Town</th></tr>'); 
        for(var i=0;i<towns.length;i++){
            $("#myTown").append('<option value="'+towns[i].town+'">'+towns[i].town+'</option>');   
        }
    }
    });
}

和应该调用另一个GET请求的函数;

function showAll(qstring,qtype) {
    var num=0;
    var recend=0;
    var totrecs=1;
    $("#vsdiv").show();
    $.ajax({
        type: "GET",
        url: rootURL, dataType:'json',data:{querystring:qstring,querytype:qtype},
        success: function(myjson){ 
            if(myjson.length==0){
                alert("No records found."); 
                var me= $('#hr1').html()+" - No Records Found.";
                $("#hr1").removeAttr("href");
            } else {
                num=myjson.length-1;
                if(myjson.length>=10){
                    recend=10;
                } else {
                    recend=myjson.length;
                }
                var me= $('#hr1').html()+" - Showing 1 - "+recend+" of "+myjson.length+" Records in Table.";
                $('#hr1').html(me);
                $("#hits").html("Viewing #1 of "+num+" records");
                $("#resultstable").append('<tr class="yellow">'+
                        '<th>#REC</th><th>JOINED</th><th>USER NAME</th><th>CONTACT</th><th>ADDRESS</th><th>PHONE</th><th>EMAIL</th><th>STATUS</th><th>SELECT</th>'+
                '</tr>');
                var j=0;
                for(var i=0;i<10;i++){
                    $("#resultstable").append('<tr class="trow'+j+'">'+
                            '<td class="ids" id="z'+i+'">'+totrecs+'</td>'+
                            '<td>'+myjson[i].jdate+'</td>'+
                            '<td class="users" id="username'+i+'">'+myjson[i].username+'</td>'+
                            '<td id="contact'+i+'">'+myjson[i].fname+' '+myjson[i].lname+'</td>'+
                            '<td id="myaddress'+i+'">'+myjson[i].address1+' '+myjson[i].town+'</td>'+
                            '<td id="phone'+i+'">'+myjson[i].phone+'</td>'+
                            '<td id="email'+i+'">'+myjson[i].email+'</td>'+
                            '<td id="status'+i+'">'+myjson[i].status+'</td>'+
                            '<td><input type="checkbox" name="whome" id="showMe'+i+'" class="boxes" onclick="getMe('+i+')" /></td>'+
                    '</tr>');   
                    totrecs++;
                    j++;
                }
                if(myjson.length>10){
                    $("#n10").attr("disabled",false);
                    $("#l10").attr("disabled",false);
                }
            }
        }
    });
}

现在这就是我在html中调用它们的方式;

  <script>
        showAll(urlParams.querystring,urlParams.querytype);
      </script> 

每当我从服务器获取数据时,它总是返回城镇,因为我需要获得搜索管理功能中的其他查询。我已经尝试了很多东西,但无论如何我都会把城镇带回来;

我不知道为什么它不能从服务器端获取数据。 一点帮助将不胜感激:))

由于

1 个答案:

答案 0 :(得分:0)

Slim按照提供的顺序匹配路线。由于您发布的两条路线都使用相同的HTTP方法并指向同一个端点,因此您只能获得getTowns结果。您需要重命名其中一条路线。