简体   繁体   English

angularjs将网址参数传递给php

[英]angularjs pass url param to php

how to pass URL parameter to php variable using angularjs routing? 如何使用angularjs路由将URL参数传递给php变量?

This is routing_script.js : 这是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'
        });
});

what else should I add to this? 我还应该添加什么呢? how to forward id_user parameter from url to a php variable... so php can execute some sql... 如何将id_user参数从url转发到php变量...这样php可以执行一些sql ...

I also read about how angular isnt for something like this... but I need it... and I need it urgently... 我还读到了类似这样的东西的角度不是很重要...但是我需要它...而且我迫切需要...

thank you!!! 谢谢!!!

here is the variable $term that needs that url parameter in php file: 这是变量$ term,需要在php文件中使用该url参数:

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

ok, if got your question right you want 'pages/public_profile.php' to read a GET parameter passed by angular so it can be executed before the view is rendered, maybe something like this do the trick: 好的,如果您的问题正确,那么您希望'pages / public_profile.php'读取由angular传递的GET参数,以便可以在呈现视图之前执行该参数,也许像这样的技巧就可以了:

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

by changing your 'templateUrl' from a string to a function that dinamicly add the parameter to the url as a get param 通过将您的'templateUrl'从字符串更改为以动态方式将参数作为获取参数添加到url的函数

In your contactController 在您的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
            })

})

NOTE: You should move all $https calls to a service. 注意:您应将所有$ https呼叫移至服务。

this is the javascript that triggers onclick event... a click on a row in datatable... the link I get looks fine, but php script doesnt get that url 这是触发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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM