angularjs将url param传递给php

时间:2015-01-21 18:13:30

标签: php angularjs url param

如何使用angularjs路由将URL参数传递给php变量?

这是routing_script.js:

var scotchApp = angular.module('HRModuleApp', ['ngRoute']);

scotchApp.config(function($routeProvider) {
    $routeProvider

        .when('/', {
            templateUrl : 'pages/home.html',
            controller  : 'mainController'
        })
        // route for the home page
        .when('/home', {
            templateUrl : 'pages/home.html',
            controller  : 'mainController'
        })
    // route for the contact page
        .when('/public_profile:user_id', {
            templateUrl : 'pages/public_profile.php',
            controller  : 'contactController'
        })

        // route for the contact page
        .when('/add_user', {
            templateUrl : 'pages/add_user.html',
            controller  : 'contactController'
        });
});

我还应该添加什么呢?如何将id_user参数从url转发到php变量...所以php可以执行一些sql ...

我也读过关于角度不是这样的东西......但是我需要它......我迫切需要它......

谢谢!!!

这是变量$ term,它需要php文件中的url参数:

<?php
$term = mysql_real_escape_string($_REQUEST['user_id']);

3 个答案:

答案 0 :(得分:0)

好的,如果你的问题得到了正确的答案,你需要&#39; pages / public_profile.php&#39;读取由angular传递的GET参数,以便可以在渲染视图之前执行,也许这样就可以了:

    .when('/public_profile/:user_id', {
        templateUrl: function(attrs){ 
            return 'pages/public_profile.php?user_id=' + attrs.user_id; },
        controller  : 'contactController'
    })

通过更改您的&#39; templateUrl&#39;从字符串到函数,将参数作为get param

以动态方式添加到url中

答案 1 :(得分:0)

contactController

function contactcontroller(['$scope','$stateParams','$http'],function($scope,$stateParams,$http){

       //here you have your user_id
       var user_id = $stateParams.user_id;

      //now you can use $http to make a request to your server
       $http.post('your_url',{'usr_id':user_id})
           .success(function(response){
                //handle OK response
            })
           .error(function(response){
                //habndle error
            })

})

注意:您应该将所有$ https调用移至服务。

答案 2 :(得分:0)

这是触发onclick事件的javascript ...点击数据表中的一行......我得到的链接看起来不错,但php脚本没有得到该URL

    $(document).ready(function() {

    $(function(){
        $.ajax({
            url: 'http://localhost/hrmodel/public/pages/employees_datatables.php',
            data: {},
            dataType: 'json',
            success: function (data) {

            // Check if received data is indeed JSON Object and not a string

                if (data.substring) {
                    console.log('is string');
                } else{
                    console.log('is not string');
                }

            // Setup for individual column search - add a text input to each footer cell

                $('#employees tfoot th').each( function () {
                    var title = $('#employees thead th').eq( $(this).index() ).text();
                    $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
                } );

            // Initialize Datatable

                var table = $('#employees').DataTable( {
                   "bProcessing": true,
                   "bSearchable" : true,
                   "bSortable" : true,
                   "bFilter": true,
                   "bInfo": true,
                   "bPaginate" : true,
                   "data" : data,
                   "columns": [
                        { "data": "korisnik_id",
                            "visible": false,
                            "searchable": false
                        },
                        { "data": "ime" },
                        { "data": "prezime" },
                        { "data": "3" },
                        { "data": "naziv" }
                    ]
                } );

            // Apply the search for each column

                table.columns().eq( 0 ).each( function ( colIdx ) {
                   $( 'input', table.column( colIdx ).footer() ).on( 'keyup change', function () {
                       table
                           .column( colIdx )
                           .search( this.value )
                           .draw();
                   } );
                } );

           // Highlighting rows

                var lastIdx = null;

               $('#employees tbody').on( 'mouseover', 'td', function () {
                   var colIdx = table.cell(this).index().column;

                   if ( colIdx !== lastIdx ) {
                       $( table.cells().nodes() ).removeClass( 'highlight' );
                       $( table.column( colIdx ).nodes() ).addClass( 'highlight' );
                    }
                } )
                .on( 'mouseleave', function () {
                   $( table.cells().nodes() ).removeClass( 'highlight' );
                } );

            // Send user_id of selected row to PHP script

                $('#employees tbody').on( 'click', 'tr', function () {
                   var id = table.row( this ).data().korisnik_id;
                   $(this).addClass('chosenUser');
                   window.location = '#/public_profile.php?user_id=' + id;
/*
                   $.ajax({
                        type: 'POST',
                        url: 'http://localhost/hrmodel/public/pages/public_profile.php',
                        data: { user_id : id },
                        dataType: 'json',
                        success: function (data) {}
                    } );
*/
                } );

            } // End of ajax : success
        }); // End of .ajax request
    }); // End of function()
}); // End of document.ready()