Question

I am new to yii and I want to change url and reload the current view page on change of a dropdown value which is in the admin's common header field. Dropdown is

echo $form->dropDownList($siteid, 'selectedsiteid', $data,$htmlOptions, array('class' => "form-control"));

The current urls may be like the following

1. http://localhost/zyntegra_commoditylifev2/admin/sitetag/viewTags/sid/6
2. http://localhost/zyntegra_commoditylifev2/admin/category/viewCategory/sid/ 3.http://localhost/zyntegra_commoditylifev2/admin/site/index


Suppose the current changed dropdown value is 10 and If the current url is like (1) one then I need to change the url like this

http://localhost/zyntegra_commoditylifev2/admin/sitetag/viewTags/sid/10

If the current url is like (2) one then

http://localhost/zyntegra_commoditylifev2/admin/category/viewCategory/sid/10

and if it's like the (3) one then there is no need of reload.

Plz somebody help me to solve this problem.

Thanks in Advance

Was it helpful?

Solution

Try it like,

var tagsUrl='http://localhost/zyntegra_commoditylifev2/admin/sitetag/viewTags/sid/';
var catUrl='http://localhost/zyntegra_commoditylifev2/admin/category/viewCategory/sid/';
$(function(){
    $('#your-select-id').on('change',function(){
       href=window.location.href;
       if(href.indexOf('viewTags') !== -1){
           window.location.href=tagsUrl+this.value;//append value of select element
       } else if(href.indexOf('viewCategory') !== -1){
           window.location.href=catUrl+this.value;//append value of select element
       }
    });
});

Above code may help you to complete your task.

Updated, to get only sid then try it like,

// use location.href in url to get current url
var url='http://localhost/zyntegra_commoditylifev2/admin/sitetag/viewTags/sid/110';
alert(url.split('sid/')[1]);//110 

Updating @salini answer like,

function reloadpage() {             
    var sid = $( '#Site_selectedsiteid' ).val( );
    var currentURL = window.location.pathname;
    var n=currentURL.indexOf("/sid");// use '/sid' only in indexOf to remove else part
    if(n!=-1) {
        var newurl = currentURL.substring(0,n); 
        window.location.href = newurl + '/sid/' + sid;
    }
}

OTHER TIPS

Ya I have Solved it. Here is my iavascript code

function reloadpage() {
     var sid = $('#Site_selectedsiteid').val();
     var currentURL = window.location.pathname;
     var n = currentURL.indexOf("/sid/");
     if (n != -1) {
         var newurl = currentURL.substring(0, n);
         window.location.href = newurl + '/sid/' + sid;
     } else {
         var n = currentURL.indexOf("/sid");
         if (n != -1) {
             var newurl = currentURL.substring(0, n);
             window.location.href = newurl + '/sid/' + sid;
         }
     }
}


It works properly. Thanks @Roshan and @kumar for ur kind help

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top