2016-04-24 52 views
1

select id section阿贾克斯获得选择标签ID通过AJAX传递

script section in head 因此,这是这种情况。 我有这个

<select name="users" onchange="showUser(this.value)" id="1"> 
 
    <option value="">Select a person:</option> 
 
    <option value="'.$lectures[4][0].'">'.$lectures[4][0].'</option> 
 
    <option value="'.$lectures[5][0].'">'.$lectures[5][0].'</option> 
 
    <option value="'.$lectures[6][0].'">'.$lectures[6][0].'</option> 
 
    <option value="'.$lectures[7][0].'">'.$lectures[7][0].'</option> 
 
    </select>

喜欢我有很多在页面中选择元素。我想通过ajax传递两个值。 一个是选择的选项值。我已经成功完成了。

其他是我想传递选择标记ID。在这种情况下,它是1

所以你能帮我在阿贾克斯部分

xmlhttp.open("GET","optiondetails.php?q="+str,true); 
    xmlhttp.send(); 

如何通过Ajax传递此值。请记住,我必须为许多选择标签执行此操作。所以我不能直接通过价值来传递它们。

感谢您的帮助。

回答

1

试试这个:

$(document).ready(function(){ 
 
\t $('select').change(function(){ 
 
    \t var opt = $(this).find('option:selected'); 
 
    console.log(opt.val()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="1"> 
 
<option value="dog">dog</option> 
 
<option value="cat">cat</option> 
 
</select> 
 

 
<select id="2"> 
 
<option value="chocolate">chocolate</option> 
 
<option value="pizza">pizza</option> 
 
</select>

我用jQuery选择得到改变选择元素

+0

感谢您的回答。 –

+0

所以我可以从opt变量传递值。你能解释一下这个console.log(opt.val()); –

+0

当然......它只是将它记录到控制台......如果你使用chrome,你可以通过点击右键打开检查器,然后检查/检查元素,进入控制台,你会看到值。你也可以使用alert而不是console.log – Tal87

0

我认为这是要做到这一点更方便的方法中所选择的选项:

$(document).ready(function(){ 
    $(document).on('change', 'select', function(){ 
    var optVal = $(this).val(); 
    var id = $(this).attr('id'); 

    $.ajax({ 
     method: "GET", 
     url: "optiondetails.php", 
     data: {q:optval, tag_id:id}, 
     cache: false 
    }).done(function(response){ 
     console.log(response); 
    }); 

    }); 

}); 
+0

感谢您的好意。我需要传递两个变量,如问题中所述。你能帮助我吗? –

+0

当然。只需在这里更改'数据:{q:optval,anotherVariable:anotherValue}' –

+0

在哪一部分我必须要这样做? –