create url with destination parameter and additional query string to views page with exposed filters I have a views page with several exposed filters.
I have created a link using a view php field as per below:

$url = '/admin/dashboard/applications/create/' . $row-&gt;nid . '?destination=' . current_path() . '&amp;' . $_SERVER['QUERY_STRING'];
$link = '&lt;a class="create-app" href="' . $url . '" title="Create application"&gt;App+&lt;/a&gt;';


This leads to a form page with a confirmation 'Submit' or 'Cancel' button.  The resulting URL on that page being something like this:

http://www.site.com/admin/dashboard/applications/create/154575?destination=admin/dashboard/enquiries&amp;nid=&amp;field_enquiry_fname_value=&amp;field_enquiry_email_value=&amp;field_enquiry_country_tid=&amp;field_enquiry_campaign_id_value=&amp;field_enquiry_emailed_value=0&amp;field_enquiry_stage_1_tid=All&amp;field_enquiry_enabled_value=1


When the redirect is done, the querystring after ?destination=admin/dashboard/enquiries is removed. I think this happens because it is not URL encoded.

I then tried url encoding the link as per below:

$query_string = array('destination' =&gt; current_path() . '&amp;' . $_SERVER['QUERY_STRING']);
$url = url('admin/dashboard/applications/create/' . $row-&gt;nid, array('query' =&gt; $query_string));
$link = '&lt;a class="create-app" href="' . $url . '" title="Create application"&gt;App+&lt;/a&gt;';


This creates the following url:

http://www.site.com/admin/dashboard/applications/create/154575?destination=admin/dashboard/enquiries%26nid%3D%26field_enquiry_fname_value%3D%26field_enquiry_email_value%3D%26field_enquiry_country_tid%3D%26field_enquiry_campaign_id_value%3D%26field_enquiry_emailed_value%3D0%26field_enquiry_stage_1_tid%3DAll%26field_enquiry_enabled_value%3D1


The issue now is that when the redirect is done back to the views page, views does not recognize the URL query and does not load the view, and falls back to the parent menu callback.
Instead of Trying to generate destination manually, can use drupal_get_destination(). So your above code would be like this:

$url = url('admin/dashboard/applications/create/' . $row-&gt;nid, array('query' =&gt; drupal_get_destination()));
$link = '&lt;a class="create-app" href="' . $url . '" title="Create application"&gt;App+&lt;/a&gt;';


drupal_get_destination() gets the current path + encode the query strings and make them as destination. this will generate below URL:

http://www.site.com/admin/dashboard/applications/create/154575?destination=admin/dashboard/enquiries%3Fnid%3D%26field_enquiry_fname_value%3D%26field_enquiry_email_value%3D%26field_enquiry_country_tid%3D%26field_enquiry_campaign_id_value%3D%26field_enquiry_emailed_value%3D0%26field_enquiry_stage_1_tid%3DAll%26field_enquiry_enabled_value%3D1


instead of your URL.

http://www.site.com/admin/dashboard/applications/create/154575?destination=admin/dashboard/enquiries%26nid%3D%26field_enquiry_fname_value%3D%26field_enquiry_email_value%3D%26field_enquiry_country_tid%3D%26field_enquiry_campaign_id_value%3D%26field_enquiry_emailed_value%3D0%26field_enquiry_stage_1_tid%3DAll%26field_enquiry_enabled_value%3D1


The difference is the encode of '?'. I have tested it in  local D7 installation.