2016-08-25 28 views
2

我想要创建一个Hoverable Dropdown来动态地按名称或日期排序我的结果。以前我曾使用和标记创建一个下拉列表中,一切工作正常我已将从选择标签和选项标签创建的下拉菜单更改为可靠下拉菜单。我应该如何传递值

我的代码是:

<select name="sort-by" id="sort"> 
     <option value="name" <?php if($orderby == 'name') echo "selected='selected'";?>>name</option> 
     <option value="date" <?php if($orderby == 'date') echo "selected='selected'";?>>date</option> 
    </select> 

我已经更改为

<div class="sort"> 
    <ul> 
    <li><a href="#">name</a></li> 
    <li><a href="#">date</a></li> 
    </ul> 
    </div> 

已转换为Hoverable下拉。但现在的问题是,代码如何知道我点击了一个链接,并因此传递了一个值$ orderby,我在另一个页面上使用if(isset($ _ POST [order_by]))在sql查询中使用?

回答

1

对不起@kanayo,但这不是工作或也许我没有妨碍它在正确的方式。这是正确的方式来保持它

<div class="sort"> 
    <script> 
    $('ul li a').click(function(){ 
    newValue = $(this).html(); 
    $('input#order_by').val(newValue); 
    }); 
    </script> 
    </div> 
    <ul> 
    <input type="hidden" id="order_by" name="order_by" value=""/> 
    <li><a href="#" >Name</a></li> 
    <li><a href="#" >Date</a></li> 
    </ul> 
    </div> 
+0

大声笑。它与我的答案完全一样。你们都是这样做的。但请注意。如果它不起作用,那么它或者你没有包含jQuery库,或者你有一个语法错误 –

+0

如果它解决了,你可以标记它的答案 –

2

您可以使用JavaScriptjQuery来实现。首先,当用户点击这样

$('ul li a').click(function(){ 
    newValue = $(this).html(); 
    $('input#order_by').val(newValue); 
}); 

注意任何选项来创建一个隐藏的输入字段

<input type="hidden" id="order_by" name="order_by" value="" /> 

然后使用jQuery更新input领域的value:不要忘了包括jQuery库到您的脚本。还请记住,您的输入字段必须位于您提交的form标签内。

这里是一个jsFiddle显示结果