微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用jQuery和CakePHP更新?

我使用的是一个小型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] 举报,一经查实,本站将立刻删除。

相关推荐