$ .POST调用后无法访问表单的值?

时间:2011-09-23 07:45:36

标签: jquery yii

我正在使用$ .POST将其发布到某个网址上。

从那里我无法访问表单值。我不知道错误是什么?

表单就像

<form id="registration-form" >
<input type="hidden" name="Profile[fb_uid]" value='1232323'></input>"
<select name="Profile[feet]" id="feet">
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<a class="btnLgBlueGrad" href="#" name="closeModal" id="profileSubmit">Start</a>
</form>

js调用是这样的

$( "#profileSubmit" ).click(function() {
        $.post("?r=site/addBasicProfile",
                function(data){
                alert(data); // this is alerting as empty
                    if(data==1)
                        window.location.href="?r=site/index";
                });
        });

调用的实际方法是

public function actionAddBasicProfile(){
    echo $_REQUEST['profile']; 
    // when i echo something static it is reflected in the ajax callback function
 }

我确定网址是正确的,并且传递了ajax请求。

3 个答案:

答案 0 :(得分:2)

那是因为你没有从jquery网站传递任何数据到$ .post():

jQuery.post( url, [data,] [success(data, textStatus, jqXHR),] [dataType] )

所以你应该将一些数据传递给你的php脚本:

$.post("?r=site/addBasicProfile",
    $('#registration-form').serialize(), // this will serialize the form data
    function(data){
       alert(data); // this is alerting as empty
       if(data==1)
       window.location.href="?r=site/index";
    }
);

作为旁注,您应该使用$_POST来获取POST值,因为$_REQUEST也可以获得GET值。

答案 1 :(得分:0)

或序列化表单,也可以在名称中使用小写。

答案 2 :(得分:0)

您需要使用$ .post调用将表单参数作为数据传递 示例@ http://api.jquery.com/jQuery.post/

你也可以使用JQuery表单插件提供的ajaxSubmit,它将为你处理它。 @ http://jquery.malsup.com/form/

$( '#形式')。ajaxSubmit会({     成功:handle_success, });