我使用的是一个小型Web应用程序的CakePHP,在一个表单页面上,有一个下拉列表来选择工作编号.我想根据使用jQuery的下拉列表中选择的工作编号来更新两个文本字段(我也愿意使用默认的ajax帮助器,但是我并没有获得很大的成功).
这是我的jQuery代码段:
<script>
$(document).ready(function() {
$('#job_id').change(function() {
$.post('/surveys/jobdetails', {id: $(this).attr('id')});
})
.change();
});
</script>
jobdetails是控制器中的一种方法,它根据传入的作业ID获取当前作业.但是,当下拉列表更改值时,不会调用该方法.我尝试用一个警报功能代替.post并起作用,所以onchange被正确调用了.
这是< div>我正在尝试更新:
echo "<div id='job_details'>";
echo $form->label('jobtitle', 'Job Title');
echo "<input type='text' name='jobtitle' id='jobtitle'>";
echo $form->label('department', 'Department');
echo "<input type='text' name='department' id='department'>";
echo "</div>";
我想将每个文本字段的值设置为从ajax调用返回的作业的相应值.有很多非常好的jQuery和CakePHP文档,但我还没有发现任何内容可以涵盖我要尝试做的事情.谁能看到我在做什么错?有没有更好的方法来使用CakePHP用CakePHP更新div?
解决方法:
现在,看来AJAX请求命中了“ / surveys / jobdetails” URL,但对结果不起作用.您需要向您的AJAX请求添加回调,如下所示:
$(document).ready(function() {
$('#job_id').change(function() {
$.post('/surveys/jobdetails', {id: $(this).attr('id')},
function(result) {
$('#job_id').html(result);
});
})
.change();
});
jQuery中还有一个便捷功能,称为load(),它可以进一步简化该功能,获取URL的内容并将其应用于所选元素:
$(document).ready(function() {
$('#job_id').change(function() {
$(this).load('/surveys/jobdetails', {id: $(this).attr('id')});
})
.change();
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。