Jquery if(isset($\u POST…)未使用ajax请求设置

Jquery if(isset($\u POST…)未使用ajax请求设置,jquery,ajax,yii,Jquery,Ajax,Yii,我有一个zii.widgets.jui.cjui对话框通过ajax向我的控制器发送表单。但是,当我测试控制器是否存在postif(isset($\u post['Item'))。它不存在,我也不知道为什么。我正在改编这篇文章http://www.yiiframework.com/wiki/145/cjuidialog-for-create-new-model/以满足我自己的需要 这是模型中的表单: <div class="form"> <form id="email-item

我有一个
zii.widgets.jui.cjui对话框
通过ajax向我的控制器发送表单。但是,当我测试控制器是否存在post
if(isset($\u post['Item'))
。它不存在,我也不知道为什么。我正在改编这篇文章
http://www.yiiframework.com/wiki/145/cjuidialog-for-create-new-model/
以满足我自己的需要

这是模型中的表单:

<div class="form">

<form id="email-item-form" action="/www.mywebsite.ca/item/1/my-first-item" method="post">   <div id="email-item-success" class="label label-success"></div>
<div id="email-item-failure" class="label label-important"></div>

<div class="row">
    <label for="Item_email_item">Email this item to:</label>        <input placeholder="Send to..." name="Item[email_item]" id="Item_email_item" type="text" />        <div class="errorMessage" id="Item_email_item_em_" style="display:none"></div>   </div><!-- row -->
<div class="row">
    <label for="Item_email_item_sender">Email sent from:</label>    
    <input placeholder="Sent from..." name="Item[email_item_sender]" id="Item_email_item_sender" type="text" />        <div class="errorMessage" id="Item_email_item_sender_em_" style="display:none"></div>    </div><!-- row -->

<br />
</form>
数据通过
CHtml::ajax
发送,并声明
'type'=>'post'
。该过程一直在向控制器发送项目id并将响应发送回模式框。自从我尝试确认存在
$\u post['item']后,问题就开始了
为了设置
$model->attributes=$\u POST['Item'];

如果能帮上忙,那就太好了,谢谢你

更新以显示CHtml::ajax()

var url='';

我没有看到任何输入或其他表单数据是
name=“Item”
。但是,如果您更改php代码以查找表单的确切名称,它应该会找到它们:

public function actionEmail($id)
{
        if(isset($_POST['Item[email_item_sender]']))
    {

              // Rest of code
            }
} 
编辑:

如果要查看所有post数据以进行调试,可以从中使用此代码

foreach($\u发布为$key=>$value)
echo“Field”.htmlspecialchars($key)。“is”.htmlspecialchars($value)。“
”;
默认情况下,jQuery通过GET发送AJAX请求。请尝试以下操作:

<?php echo CHtml::ajax(array(
    'url'=>'js:url',
    'data'=> "js:$(this).serialize()",
    'type'=>'POST'
    ...

您应该能够找到$u POST['Item'的存在不管在Yii中如何。我进行了更新以检查,什么都没有。运行foreach脚本得到了什么?什么都没有返回。堆栈跟踪中未定义变量。
$\u POST
为空PHP文件没有接收任何数据,这是javascript的问题。如果我已经修复了它,请重新输入serialize()的id-谢谢你的帮助。
public function actionEmail($id)
{
        if(isset($_POST['Item[email_item_sender]']))
    {

              // Rest of code
            }
} 
foreach ($_POST as $key => $value)
echo "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value)."<br>";
<?php echo CHtml::ajax(array(
    'url'=>'js:url',
    'data'=> "js:$(this).serialize()",
    'type'=>'POST'
    ...