【问题标题】:Set "option" value of "select" when redirected from page从页面重定向时设置“选择”的“选项”值
【发布时间】:2014-01-29 09:42:49
【问题描述】:

我有页面 A,我有三个锚点。 和页面 B,我在这里选择了 #days,值为 30,180,365

因此,当我单击页面 A 时,我应该跳转到页面 B,在选择 #days 时会自动选择 value=30 的选项。

有可能吗?我想最简单的方法是使用 jquery 或其他东西。

谢谢!

编辑:我有以下用于显示值的 PHP 代码。

<select id="days" name="days">
              <?php foreach($prices as $current_days => $details): ?>
                <option value="<?php echo $current_days ?>" <?php selected( $subscription_days, $current_days ); ?>>
                  <?php echo $details['desc']; ?>
                </option>
              <?php endforeach; ?>
            </select>

【问题讨论】:

    标签: javascript jquery select redirect


    【解决方案1】:

    使用 here 编写的函数来获取 URL 变量,您只需要:

    $('#days').val($.getUrlVar('v'));
    

    Demo fiddle

    Code fiddle

    【讨论】:

    • 嗨!谢谢,它的部分工作:) 我有由 PHP 加载的“值”(一个程序员为我做了那个,所以我可以更改值并且需要付款)对于带有预编码选项的普通
    【解决方案2】:

    这里很好地描述了获取变量:Getting value GET OR POST variable using JavaScript?

    现在您只需要一个 Javascript 来检查此值是否已设置,然后简单地操作选择框。 我不会在纯 Javascript 中做类似的事情。 jQuery for Example 在他们的 API 中为此提供了非常好的函数。

    【讨论】:

      【解决方案3】:

      你可以使用类似的东西

      function getParameter(paramName) {
        var searchString = window.location.search.substring(1),
            val, params = searchString.split('&');
      
        for (var i=0; i<params.length; i++) {
          val = params[i].split('=');
          if (val[0] === paramName) {
            return unescape(val[1]);
          }
        }
        return false;
      }
      
      var v = getParameter('v');
      
      if (v) {
          $('#days').val(v);
      }
      

      【讨论】:

        【解决方案4】:

        您可以使用 JavaScript 从 URL 中获取参数并将选择设置为所需的值。 一个使用 jQuery 的例子是这个:

        <html>
        <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
          <script type="text/javascript">
            function selectItem() {
              var i = getParam('v');
              $('#days').val(i);
            }
            function getParam(paramName) {
              return decodeURI(
                (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
              );
            }
          </script>
        </head>
        <body onload="selectItem()">    
          <select id='days'><option value='1'>1</option><option value='2'>2</option></select>
        </body>
        </html>
        

        【讨论】:

          【解决方案5】:

          这样的事情应该可以工作:

          <a href="http://server/PageB?value=30">Anchor A</a>
          <a href="http://server/PageB?value=180">Anchor B</a>
          <a href="http://server/PageB?value=365">Anchor C</a>
          

          从你的页面 B 你必须把这个脚本:

          function GetQueryStringParams(sParam)
          {
              var sPageURL = window.location.search.substring(1);
              var sURLVariables = sPageURL.split('&');
              for (var i = 0; i < sURLVariables.length; i++)
              {
                  var sParameterName = sURLVariables[i].split('=');
                  if (sParameterName[0] == sParam)
                  {
                      return sParameterName[1];
                  }
              }
          }​
          
          var valueFromUrl = GetQueryStringParams("value");
          $("#your-select-id option").each(function()
          {
              this.selected = (this.text() == valueFromUrl);
          });
          

          【讨论】:

            猜你喜欢
            • 2016-06-13
            • 2013-05-30
            • 1970-01-01
            • 1970-01-01
            • 2019-07-07
            • 2014-08-03
            • 2015-05-30
            • 2015-10-17
            • 2014-06-06
            相关资源
            最近更新 更多