Yii 如何通过ajaxbutton获取一个输入文本字段值

Yii 如何通过ajaxbutton获取一个输入文本字段值,yii,Yii,如何获取用户的输入值并将其提交给ajax,然后提交给controller?现在,在我的控制器中,它表示id是$u POST['id'中的未定义索引 这个输入文本字段实际上在另一个表单中,有点像表单中的表单 <?php echo $form->textField($model,'email',array('id'=>'email')); ?> <?php echo $form->error($model,'email'); ?>

如何获取用户的输入值并将其提交给ajax,然后提交给controller?现在,在我的控制器中,它表示id是$u POST['id'中的未定义索引

这个输入文本字段实际上在另一个表单中,有点像表单中的表单

<?php echo $form->textField($model,'email',array('id'=>'email')); ?>
        <?php echo $form->error($model,'email'); ?>
          <?php echo CHtml::ajaxButton ( 'Request Code', 
                CHtml::normalizeUrl(array('site/requestResetCode', 'render'=>true),
                array (
                    'type' => 'POST',
                    //'data'=> array('id'=> 'js:$("#ResetPasswordForm_email").val()'),
                    'data'=> array('id'=> 'js:$("#email").val()'),
                    'success'=>'function(data){
                        if(data.status == "sent")
                            bootbox.alert("Code is sent. Please check your email.");
                        else (data.status == "failed")
                            bootbox.alert("Request Failure");
                        }',
                    'error'=> 'function (xhr, ajaxOptions, thrownError) {
                        alert(xhr.status);
                        alert(thrownError);
                        }',
                )
            ))
        ?>

您的POST数组为空,因为未发送值。您需要创建一个javascript函数,如

<script type="text/javascript">

    function getVal()
    { 
    var value= $("#myEmail").attr('value');
    alert(value);
    return value;

    }
    </script>

是否确定正在调用此函数的js:$email.val?把警报放进去,看看它是否被调用。好的,同样的错误。。。然后我错过了什么?我还尝试了'data'=>'js:{id:$email.val}',好的,写CVarDumper::Dump$\u POST,100,true;死亡然后看看它返回了什么。哦..它返回了一个事物数组好的,当页面呈现时,右键单击textField,然后单击Input元素。在那里你可以看到文本字段的id。告诉我呈现的html中的id是什么。同样的事情。。未定义。。。我也不明白为什么需要添加另一个这样的函数?@user3232194我可能无法描述这一点,因为当我使用ajax时,有时您提到的代码不起作用。就是这样,我建议了一个函数。第二个函数更具可读性。我认为textField的id与其他具有相同id的元素冲突。请尝试将其更改为myEmail并尝试$myEmail.val;并且让我知道好的,请在你的问题中发布你页面的呈现html,这样它可能会更清晰
<script type="text/javascript">

    function getVal()
    { 
    var value= $("#myEmail").attr('value');
    alert(value);
    return value;

    }
    </script>
 'data'=> array('id'=> 'js:getVal()'),