Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript或jquery中的html下拉列表中获取值_Javascript_Php_Jquery_Ajax - Fatal编程技术网

从javascript或jquery中的html下拉列表中获取值

从javascript或jquery中的html下拉列表中获取值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个html下拉列表,它是由java脚本创建的,我需要从这些动态创建的下拉列表中获取值,使用相同的或id,并通过php中的ajax将其发布到。您能帮助如何从这些选定的下拉列表中获取值吗 <select name="criteria[]"> <option value="null" disabled selected>- select -</option>

我有一个html下拉列表,它是由java脚本创建的,我需要从这些动态创建的下拉列表中获取值,使用相同的或id,并通过php中的ajax将其发布到。您能帮助如何从这些选定的下拉列表中获取值吗

         <select name="criteria[]">
                            <option value="null" disabled selected>- select -</option>
                            <option value="a">a</option>
                            <option value="b">b</option>

            <option value="c">c</option>

你的问题不是很清楚。您有两个相同的下拉控件,具有相同的名称/选项。这是故意的吗?您希望如何使用它们

如果两者都是必需的,最好通过为每一个都分配一个唯一的ID使它们唯一:

<select id="s1" name="criteria[]">
    ...options...
</select>
由于HTML是由javascript创建的,因此可能需要使用事件委派:

$(document).on('change', 'select[name="criteria[]"]', function(){
    var sel1_val = $('s1').val();
    var sel2_val = $('s2').val();
    $.ajax({
        type: 'post',
         url: 'your_php_ajax_processor_file.php',
        data: 'sel1=' +sel1_val+ '&sel2=' +sel2_val,
        success: function(d){
            if (d.length) alert(d);
        }
    });
});
在PHP文件中:

<?php
    $s1 = $_POST['sel1'];
    $s2 = $_POST['sel2'];
    //now, do what you need to do with the two values
.on是检测注入标记的事件所必需的

请注意,如果您使用的是AJAX,那么就不需要使用结构——您可以使用普通的div

有关AJAX的更多信息,请参阅以下附加文章:


因此,您可以使用jquery循环选择列表,并将值存储在数组中。 这是你可以尝试的

$(function(){

    var array = [];
    $('#btnGetVal').on('click', function(){
        $('select[name="criteria[]"]').each(function(){
            console.log($(this).val());
            array.push($(this).val());
        });        

        console.log(array);

        $.ajax({
            type: 'post',
             url: 'yourfile.php',
            data: {values:array},
            success: function(d){
                // do something on success
            }
        });

    });


});

这是一张工作票。请检查控制台中的值。希望这对您有所帮助

您应该能够从Stack Overflow中的100多个重复问题中获得所需信息,这些问题涉及如何从下拉列表中获取值:@Sushil您能解释一下吗。。我们是否需要有获取值的循环..您可以尝试此$document.on'change',select',函数{console.log$this.val;};或$'select[name=criteria[]'。在'change'上,函数{console.log$this.val;};他们两个都会给你机会value@Sushil我想要所有这些条件的值[]下拉按钮点击并放入数组通过ajax提交它你能帮我吗我不需要这个更改我想要所有下拉列表中的值在一个数组中,并在按钮点击事件中发布我可以缩写为在php文件中获取值
<?php
    $s1 = $_POST['sel1'];
    $s2 = $_POST['sel2'];
    //now, do what you need to do with the two values
$(function(){

    var array = [];
    $('#btnGetVal').on('click', function(){
        $('select[name="criteria[]"]').each(function(){
            console.log($(this).val());
            array.push($(this).val());
        });        

        console.log(array);

        $.ajax({
            type: 'post',
             url: 'yourfile.php',
            data: {values:array},
            success: function(d){
                // do something on success
            }
        });

    });


});