使用ajax将选定下拉列表的值作为参数传递给另一个下拉列表中的函数

时间:2015-03-31 20:17:49

标签: javascript php ajax onchange

我需要一些关于我正在构建的ajax函数的建议,并且到目前为止尚无法解决这个问题。 所以我选择了order_by下拉列表,它使用名为searchFilter的ajax函数来更改this.value,这是一个名为$orderr_by的变量:

<select name="order_by" 
        onchange="searchFilter('0',
                               '<?php echo $maxRows;?>',
                               this.value);">

我有另一个select condition下拉列表调用相同的searchFilter函数,并且当$orderr_by下拉列表触发onchange事件时,应该获取新的order_by参数。 / p>

下面我已经让它工作了三个静态参数,但我需要在$orderr_by参数更改时使其工作:

<select name="condition" id="condition" 
        onchange="searchFilter('<?php echo $pageNum;?>',
                               '<?php echo $maxRows;?>',
                               '<?php echo $orderr_by; ?>');">

我的Axaj看起来像这样:

function searchFilter(pageNumbr,maxRows,order_by) {

    var filter  = jQuery.noConflict();

    filter.post(
        MYSURL+'ajaxphp/searchFilters.php?page_no='+pageNumbr+'&max_rows='+maxRows+'&order_by='+order_by, 
        filter('#filterFrm').serialize(), 

        function(html){  
            arrHtml = html.split('<####>');
            filter('#resultContainer').html(arrHtml[0]);    
        }
    );

    } // function searchFilter()

1 个答案:

答案 0 :(得分:0)

选择[name = order_by]元素的值。

在纯JS中,您可以按如下方式执行此操作:

var element = document.getElementById("order_by");
var order_by = element.options[element.selectedIndex].value;

jQuery有更清晰的方法。

您的函数声明中不需要order_by。如果由于某种原因需要从其他代码传递order_by,则必须确保order_by尚未定义:

if (order_by === undefined) {
   ...
}