how to pass URL parameter to php variable using angularjs routing?
This is 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...
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:
<?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:
.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
In your 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.
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
$(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()