使用CakePHP在多个页面上提交jQuery Mobile表单

时间:2014-12-30 00:38:00

标签: php jquery cakephp jquery-mobile

我希望我在这里缺少一些简单的东西。我有一个CakePHP网站,我正在使用jQuery mobile。我认为CakePHP可能与它有关,但我不确定。

无论如何,我在我的视图页面上创建了一个用于添加评论的表单。 Ajax调用在加载的第一个页面上按预期工作,但导航到任何其他页面会阻止提交数据。控制台仍然记录数据'每次我按下按钮(使用' pagebeforeshow'按照其他地方的建议),但它似乎是来自原始加载页面的数据(我知道这是因为我正在调试$ this->请求 - >表单操作页面上的数据。)

显然,我必须要重置"在页面移动时以某种方式表单,但我不确定如果没有刷新页面这是否可行。我知道" data-ajax" =" false"和" rel" ="外部"这可以作为最后的手段,但我想尽量避免刷新页面。

有什么建议吗?谢谢。

这是我用于Ajax调用的JS

//<![CDATA[
$(document).on('pagebeforeshow', function(){       
    $(document).off('click', '#comment_add').on('click', '#comment_add',function(e) {
        $.ajax({
        async:true,
        data:$("#sCommentViewForm").serialize(),
        dataType:"html",
        success:function (data, textStatus) {
            //$('#comments').remove();
            //$('<div id="comments"></div>').appendTo('#comments_container');
            $("#comments").html(data).trigger('create');
            //$('#comments_box').remove();
            //$('<div id="comments_box"></div>').appendTo('#comments_container');
            console.log(data);
        },
        type:"POST",
        url:"commentsUsers/comment_add/<? echo $template['Template']['id']; ?>"});
        return false;
    }); 
});
//]]>
</script>

1 个答案:

答案 0 :(得分:0)

这是我基本缺乏理解。经过大量搜索后,这篇简单的帖子非常有用:

Jquery Mobile Javascript not working on ajax load

基本上,我正在使用ID作为一切 - 当我切换到班级名称时,它一帆风顺。