【问题标题】:Use ajax to pass the value of selected dropdown as an argument to a function in another dropdown使用 ajax 将选定下拉列表的值作为参数传递给另一个下拉列表中的函数
【发布时间】:2015-03-31 20:17:49
【问题描述】:

我需要一些关于我正在构建的 ajax 函数的建议,但到目前为止还没有弄清楚。 所以我选择了order_by 下拉菜单,它使用名为searchFilter 的ajax 函数来更改this.value,这是一个名为$orderr_by 的变量:

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

order_by 下拉菜单触发 onchange 事件时,我有另一个选择 condition 下拉菜单,它调用相同的 searchFilter 函数并且应该获取新的 $orderr_by 参数。

下面我已经让它适用于三个静态参数,但是当 $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()

【问题讨论】:

  • 我并没有完全按照你的想法去做。您是否尝试将 order_by 的值传递给 [name=condition] 调用的 searchFilter?
  • 是的,正确的。我想获取order_by 的新变量并将其传递给condition 以代替'&lt;?php echo $orderr_by; ?&gt;'

标签: javascript php ajax onchange


【解决方案1】:

选择 [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) {
   ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多