Javascript 正在分析下拉列表中的选定值以转到下一页

Javascript 正在分析下拉列表中的选定值以转到下一页,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我正试图通过http请求将下拉列表中当前选定的值解析到下一页,因此选定的值将通过url解析到下一页 表单下拉列表如下所示: <form name="sortby"> <select id="order_by" name="order_by" onchange="sortBy()"> <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'choo

我正试图通过http请求将下拉列表中当前选定的值解析到下一页,因此选定的值将通过url解析到下一页

表单下拉列表如下所示:

<form name="sortby">
    <select id="order_by" name="order_by" onchange="sortBy()">
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'choose') echo ' selected="selected"'; ?> value="choose">Sort By</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'OVERALL_VALUE') echo ' selected="selected"'; ?> value="OVERALL_VALUE">Most Popular</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'PRICE') echo ' selected="selected"'; ?> value="PRICE">Price (low to high)</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'PRICE_REVERSE') echo ' selected="selected"'; ?> value="PRICE_REVERSE">Price (high to low)</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'QUALITY') echo ' selected="selected"'; ?> value="QUALITY">Rating</option>
    </select>
</form>
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data) . "\n";
//OUTPUT: foo=bar&baz=boom&cow=milk&php=hypertext+processor

echo http_build_query($data, '', '&amp;');
//OUTPUT: foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

value=“总体价值”>最受欢迎
value=“PRICE\u REVERSE”>价格(从高到低)

只需放置一个提交按钮而不是标签,然后单击它。它将通过get方法发送所选值。并确保在表单元素中定义了action属性

        <form action="">
        <select>
       .....................  
       </select>
        <input type="submit" name="submit">
        </form>

.....................  
使用
http\u build\u query()
来清理这个问题。像这样使用它:

<form name="sortby">
    <select id="order_by" name="order_by" onchange="sortBy()">
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'choose') echo ' selected="selected"'; ?> value="choose">Sort By</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'OVERALL_VALUE') echo ' selected="selected"'; ?> value="OVERALL_VALUE">Most Popular</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'PRICE') echo ' selected="selected"'; ?> value="PRICE">Price (low to high)</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'PRICE_REVERSE') echo ' selected="selected"'; ?> value="PRICE_REVERSE">Price (high to low)</option>
        <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'QUALITY') echo ' selected="selected"'; ?> value="QUALITY">Rating</option>
    </select>
</form>
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data) . "\n";
//OUTPUT: foo=bar&baz=boom&cow=milk&php=hypertext+processor

echo http_build_query($data, '', '&amp;');
//OUTPUT: foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor
或者,使用JS,您可以执行以下操作:

function getCurrentParams() {
    var url = document.URL;
    var url_split = url.split("?");
    var params = url_split[1];
    return params;
}

function urlToObj(url) {
    var obj = {};
    var pairs = url.split('&');
    for (i in pairs) {
        var split = pairs[i].split('=');
        obj[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
    }
    return obj;
}

function getQuery(e){ // will fire on button click
    var value = $("#order_by").val();
    var params_string = getCurrentParams();
    var get_params_obj = urlToObj(params_string);
    get_params_obj.orderBy= value;
    var params = $.param(get_params_obj);
    alert(params);
    location.href = "http://youbaseurl.com?"+params;
    return false;
}
HTML:



看起来您正试图通过URL传递变量来构造
SQL
语句?!?!如果希望在不使用表单的情况下更改此内容,则似乎需要使用Javascript。。但是,如果你想使用表单,那么就对你的数据使用隐藏输入。这是行不通的,因为他需要查询中的所有其他数据。要使它在没有JS的情况下工作,他需要使用许多隐藏的输入。很难理解如何使用JS示例。如何将JS检索到的值放入按钮中的url调用中@CodeGodieit的工作范围很广,我从“排序方式”下拉列表中收到了值警报。但它不会进入我收到fra警报的url。如何让函数getQuery实际转到所创建的url?您必须强制执行
location.href
。我更新了代码没问题。很高兴我能帮忙