当我发现控制器中的以下代码破坏了Jquery Mobile时,我一直试图弄清楚为什么我的某些页面不能与Jquery Mobile的页面转换一起工作:

public $components = array(
'RequestHandler');
public $helpers = array('Js');

我将其包含在我与JSHelper一起运行的ajax函数的控制器中,但如果可以避免的话,使用Jquery Mobile比使用JSHelper更为重要。 我想要一些帮助,或者a。)固定jquery mobile以使其与JS Helper一起使用,或者b。)使用Jquery编写以下函数来完全避免JSHelper:

<?php
$this->Js->get('#BagUserId')->event('change', 
    $this->Js->request(array(
        'controller'=>'bags',
        'action'=>'ajaxload'
        ), array(
        'update'=>'#user-info',
        'async' => true,
        'method' => 'post',
        'dataExpression'=>true,
        'data'=> $this->Js->serializeForm(array(
            'isForm' => true,
            'inline' => true
            )),
        ))
    );
?>

* 编辑 * *

根据Sam的回答,我得出以下结论:

$('#BagUserId').change(function(){
        var myData = $('#BagUserId').serialize();
        $.ajax({
            dataType: 'html',
            type: "POST",
            evalScripts: true,
            async: true,
            url: myBaseUrl + 'bags/ajaxload',
            data: myData,
                success: function (data){
                    $('#user-info').html(data);
                },
                error: function(){
                        alert('failure');
                        },
        });
    });

为了使url正常工作,请在加载其他脚本之前将其包含在默认视图的标题中:

<script type="text/javascript">var myBaseUrl = '<?php echo $this->Html->url('/'); ?>';</script>`

这样,您可以避免CakePHP中的JsHelper(对我而言)在我的控制器的所有视图中导致页面转换错误。 谢谢山姆!

===============>>#1 票数:0

您可能需要一些类似的东西:

$('#BagUserId').change(function()){
    $.post('bags/ajaxload', $('#my_form_id').serializeArray());
};

  ask by Luke Keller translate from so

未解决问题?本站智能推荐: