如何从网址

时间:2015-07-22 17:33:39

标签: javascript php mysql angularjs cordova

我正在研究AngularJS,我想从URL中加载MySQL中的内容。

我使用的AngularJS RouteProvider是:

$routeProvider.when('/page/pages=:pages', {
     templateUrl: 'page.html',
     reloadOnSearch: false
});

我的动态网址是:

"<a class='list-group-item' href='#/page/pages=" + slug + "'>" +
    title + " <i class='fa fa-chevron-right pull-right'></i>" +
"</a>"

之后,我尝试提醒PhoneGap上的URL位置(附带截图)

enter image description here

现在,我想将此页面值传递给AJAX,以便从MySQL获得结果查询。

$(function ()
{
    //-----------------------------------------------------------------------
    // 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
    //-----------------------------------------------------------------------
    jQuery.ajax({

        url: 'http://keralapsctuts.com/app/index.php', //the script to call to get data          
        data: "pages="+pages, //you can insert url argumnets here to pass to api.php for example "id=5&parent=6"
        type: "POST",   
        dataType: 'json',           //data format 
        success:function(data) {
            var result = "";
            var title = "";

            alert(pages);

            for(var i=0; i < data.length; i++) {
                var title = data[i]["pagetitle"];        //get name
                var content = data[i]["pagecontent"];        //get slug
                result += +content;
                title += "<span>"+title+"</span>";
            }

            $('#pcontent').html(content); //Set output element html
            $('#ptitle').html(title); //Set output element html
        }
    });
}); 

我没有得到任何输出。

2 个答案:

答案 0 :(得分:1)

要获取网址中的查询参数,请使用AngularJS $location提供程序。 如果您的网址看起来像example.com/#/page?pages=5,则可以通过编写

来获取值5
 var urlPageValue = $location.search()["pages"];

请务必通过编写

在控制器中包含$ location和$ http服务
yourModuleName.controller("AwesomeController", ["$location", "$http", function($location, $http){
    // Page initialization code (like your ajax call) here
}])

然后,正如Szanto建议的那样,使用$ http服务来写你的ajax调用

$http({
    url:"/yourApiEndpoint",
    method: "POST",
    data: { pages: urlPageValue }
}).success(function(response){
    // Handle returned data here
}).error(function(){
    // Handle errors here
})

最后,在您的原始问题中,当您从SQL调用中获取数据时,您手动将跨度添加到DOM。如果要使用AngularJS,则应将响应分配给数组变量,并使用HTML中的ngRepeat指令为数组中的每个项目实例化一些模板。

答案 1 :(得分:0)

你正在使用Angular和jQuery吗?这是一个坏主意,使用Angular的内置http method来替换jQuery ajax请求。其次,您可以将参数传递给请求配置(即使在jQuery中)。