php - 部分渲染的 div 内的 ajax 验证

标签 php ajax validation yii

我正在尝试在<div class="b">内处理ajax验证这是通过使用 ajax 部分渲染的...

enter image description here

$('.a').click(function(event){
        $.ajax({
            url: '<?php echo Yii::app()->createUrl('myController/myAction'); ?>',
            type: "POST",
            success: function( data ) {
                $('.b').html(data);
          }
        });
    });

在 Controller 中:

public function actionMyAction()
{
    $form = new MyForm;

    if(isset($_POST['MyForm']))
    {
        $form->attributes=$_POST['MyForm'];
        if($form->validate())
        {
            ...
            $this->refresh();
        }
    }

    $this->renderPartial('myView', array('myForm'=>$form));
}

如果我使用render而不是renderPartial它按预期工作。我错过了什么?

如有任何帮助,我们将不胜感激。

最佳答案

我的 friend 帮我解决了这个问题。这是他的解决方案:

渲染结果应使用processOutput进行后处理。此方法对 render() 生成的输出进行后处理。此方法在 render() 和 renderText() 结束时调用。如果有注册的客户端脚本,此方法会将它们插入到输出中适当的位置。如果有动态内容,也会被插入。此方法还可以将持久页面状态保存在页面中有状态表单的隐藏字段中。。

渲染结果是否进行后处理由$processOutput参数定义,默认为false:renderPartial(string $view, array $data=NULL, bool 值 $return=false, bool 值 $processOutput=false)

而不是

$this->renderPartial('myView', array('myForm'=>$form));

你应该打电话:

$this->renderPartial('myView', array('myForm'=>$form), false, true);

关于php - 部分渲染的 div 内的 ajax 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558850/

相关文章:

php - 递归解析关联数组时如何检查 PHP 中的循环引用?

php - 在 drupal 7 中,我们如何使用 ajax 回调函数将下拉值作为参数传递?

javascript - Regex.test(value) 在记录时返回 true,但在 if 语句中返回 false

php - Symfony 表单 - 类型为 "string or Symfony\Component\Form\FormTypeInterface"的预期参数,给定为 "array"

php - 计算时差

javascript - 从 socket.io 返回值

javascript - ajax请求中的表单数据不完整

java - 使用ajax发送大量json数据到 Controller

spring - 使用 Spring 3 验证的两种方法?

validation - 尝试以下操作时,为什么自定义消息无法正常使用?