簡體   English   中英

angularjs將網址參數傳遞給php

[英]angularjs pass url param to php

如何使用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']);

好的,如果您的問題正確,那么您希望'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'
    })

通過將您的'templateUrl'從字符串更改為以動態方式將參數作為獲取參數添加到url的函數

在您的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呼叫移至服務。

這是觸發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