How can I add or update a query string parameter?

后端 未结 27 2849
别那么骄傲
别那么骄傲 2020-11-22 02:35

With javascript how can I add a query string parameter to the url if not present or if it present, update the current value? I am using jquery for my client side development

27条回答
  •  不知归路
    2020-11-22 03:12

    Yeah I had an issue where my querystring would overflow and duplicate, but this was due to my own sluggishness. so I played a bit and worked up some js jquery(actualy sizzle) and C# magick.

    So i just realized that after the server has done with the passed values, the values doesn't matter anymore, there is no reuse, if the client wanted to do the same thing evidently it will always be a new request, even if its the same parameters being passed. And thats all clientside, so some caching/cookies etc could be cool in that regards.

    JS:

    $(document).ready(function () {
                $('#ser').click(function () {
                    SerializeIT();
                });
                function SerializeIT() {
                    var baseUrl = "";
                    baseUrl = getBaseUrlFromBrowserUrl(window.location.toString());
                    var myQueryString = "";
                    funkyMethodChangingStuff(); //whatever else before serializing and creating the querystring
                    myQueryString = $('#fr2').serialize();
                    window.location.replace(baseUrl + "?" + myQueryString);
                }
                function getBaseUrlFromBrowserUrl(szurl) {
                    return szurl.split("?")[0];
                } 
                function funkyMethodChangingStuff(){
                   //do stuff to whatever is in fr2
                }
            });
    

    HTML:

    C#:

        using System.Web;
        using System.Text;
        using System.Collections.Specialized;
    
        public partial class SomeCoolWebApp : System.Web.UI.Page
        {
            string weburl = string.Empty;
            string partName = string.Empty;
    
            protected void Page_Load(object sender, EventArgs e)
            {
                string loadurl = HttpContext.Current.Request.RawUrl;
                string querySZ = null;
                int isQuery = loadurl.IndexOf('?');
                if (isQuery == -1) { 
                    //If There Was no Query
                }
                else if (isQuery >= 1) {
                    querySZ = (isQuery < loadurl.Length - 1) ? loadurl.Substring(isQuery + 1) : string.Empty;
                    string[] getSingleQuery = querySZ.Split('?');
                    querySZ = getSingleQuery[0];
    
                    NameValueCollection qs = null;
                    qs = HttpUtility.ParseQueryString(querySZ);
    
                    weburl = qs["qURL"];
                    partName = qs["qSPart"];
                    //call some great method thisPageRocks(weburl,partName); or whatever.
              }
          }
      }
    

    Okay criticism is welcome (this was a nightly concoction so feel free to note adjustments). If this helped at all, thumb it up, Happy Coding.

    No duplicates, each request as unique as you modified it, and due to how this is structured,easy to add more queries dynamicaly from wthin the dom.

提交回复
热议问题