jQuery选项选择半工作

时间:2013-12-18 12:07:54

标签: php jquery

我在php中的页面上有一个表单。下面将调用以下三个函数。

我想要实现的是两个选择取GET值并选择正确的值。

orderType工作正常,但orderSel不正常。我不知道为什么,这是我的问题。

这是功能:

function loadOrderButton()
{
  echo "<form name=\"input\" action=\"colview.php\" method=\"get\">
        <select onchange=\"this.form.submit()\" class=optionText3 name=\"orderSel\" id=\"orderSel\">
            <option class=optionText  value=\"\">ORDER BY</option>
            <option class=optionText  value=\"name\">Name</option>
            <option class=optionText  value=\"overall\">Overall</option>
            <option class=optionText  value=\"skt\">Skating</option>
            <option class=optionText  value=\"sht\">Shooting</option>
            <option class=optionText  value=\"hnd\">Hands</option>
            <option class=optionText  value=\"chk\">Checking</option>
            <option class=optionText  value=\"def\">Defense</option>
            <option class=optionText  value=\"faceoff\">Faceoffs</option>
        </select>
        <input type=hidden name=\"l\" value=".$_GET[l].">
        <input type=hidden name=\"t\" value=".$_GET[t].">
        <input type=hidden name=\"orderType\" value=".$_GET[orderType].">
        </form>";
}

function loadOrderTypeButton()
{
  echo "<form name=\"input\" action=\"colview.php\" method=\"get\">
        <select onchange=\"this.form.submit()\" class=optionText3 name=\"orderType\" id=\"orderType\">
            <option class=optionText  value=\"DESC\">DESC</option>
            <option class=optionText  value=\"ASC\">ASC</option>
        </select>
        <input type=hidden name=\"l\" value=".$_GET[l].">
        <input type=hidden name=\"t\" value=".$_GET[t].">
        <input type=hidden name=\"order1\" value=".$_GET[orderSel].">
        </form>";
}

function setLoadOrder()
{
  echo "<script>    
        var el = jQuery('select#orderSel option[value=\"".$_GET[orderSel]."\"]');
        var el = jQuery('select#orderSel option').filter(function(){return jQuery(this).text()==\"".$_GET[orderSel]."\"});
        el.attr(\"selected\", \"selected\");
        var el = jQuery('select#orderSel option:selected');
        el.text();  

        var el = jQuery('select#orderType option[value=\"".$_GET[orderType]."\"]');
        var el = jQuery('select#orderType option').filter(function(){return jQuery(this).text()==\"".$_GET[orderType]."\"});
        el.attr(\"selected\", \"selected\");
        var el = jQuery('select#orderType option:selected');
        el.text();
       </script>";
}

非常感谢帮助人员。

1 个答案:

答案 0 :(得分:0)

您正在根据显示文字而不是其值来过滤选项,这适用于orderType,因为其文本和值相同,但orderSel则不然。

请改用该值。

jQuery('#orderSel option').filter(function(){return jQuery(this).val()==\"".$_GET[orderSel]."\"});

如果要设置所选选项,只需将选项的值传递给选择的值

即可
jQuery('#orderSel').val(optionValue);