我需要将列表元素ID传递给ajax,而这段代码似乎没有完成这项工作:
HTML:
<ul id="tree">
<li><a id="1">Finance</a></li>
<li><a id="2">ACC</a></li>
<li><a href="<?php echo base_url()?>admincont/departament/6>">HR</a></li>
</ul>
JavaScript的:
<script type="text/javascript">
$( document ).ready(function() {
$('#tree li').click(function(){
$.ajax({
method: "POST",
data: {depID: $(this).attr('id')},// i have also tried $(this).id
url: "<?php echo base_url();?>/assets/getdepartment.php",
success: function(msg){
$('#result').html(msg);
}
})
})
});
</script>
我的php文件:
<?php
$depID = $_POST['depID'];
echo $depID;
?>
在我的结果div中,我明白了 &#34;注意:未定义的索引:第2行&#34;
中的depID答案 0 :(得分:5)
this
未引用您的锚点,它指的是列表项。
您可以使用this
找到锚点:
data: {depID: $(this).find('a').attr('id')}
或(我认为最好),只需将事件处理程序附加到锚点即可:
$('#tree li a').click(function(e){
e.preventDefault(); // If you need to prevent the default behaviour
$.ajax({
method: "POST",
data: {depID: $(this).attr('id')},
url: "<?php echo base_url();?>/assets/getdepartment.php",
success: function(msg){
$('#result').html(msg);
}
})
})