数组元素无法通过索引访问

时间:2015-11-15 07:28:46

标签: php arrays cakephp

我在$ this-> request-> data object:

中有一个数组
Array
(
    [Reseller] => Array
        (
            [id] => 1
            [name] => Abdus Sattar Bhuiyan 
            [mobile] => 01673050495
            [email] => kuet.absb@yahoo.com
        )

)

所以我想像往常一样访问id:$this->request->data['Reseller']['id']; 但它显示未定义的索引Reseller。以下工作正常:

$requestData = $this->request->data;
pr($requestData['Reseller']);

给出:

 Array
        (
            [id] => 1
            [name] => Abdus Sattar Bhuiyan 
            [mobile] => 01673050495
            [email] => kuet.absb@yahoo.com
        )

当我尝试通过pr($ requestData ['经销商'] [' id'])再次显示ID时;它再次显示未定义的索引Reseller。以下再次工作: $ data = $ requestData ['经销商']; PR($数据[' ID']);

我的pr()函数是:

function pr($data){
echo '<pre>'; print_r($data); echo '</pre>';
}

我的完整php代码:

function changePersonalInfo() {
        $this->layout = 'ajax';
        $this->render('nothing');
        $this->loadModel('Reseller');
        $requestData =$this->request->data;
        $data = $requestData['Reseller'];
        pr($data['id']); exit;
        $this->Reseller->id = $this->request->data['Reseller']['id'];
        $this->Reseller->save($this->request->data['Reseller']);

        $msg = ' <div class="alert alert-success">
                                <button type="button" class="close" data-dismiss="alert">×</button>
                                <strong>Chanes Saved</strong> 
                            </div>';


        $return['msg'] = $msg;
        $reseller = $this->Reseller->findById($this->Reseller->id);
        $return['reseller'] = $reseller['Reseller'];
        $result = json_encode($return);
        echo $result;
    }

很奇怪!请求的数据由ajax请求发布,如下所示:

function saveData(formid, processUrl, updateSection) {

    $(formid).submit(function (event) {
        event.preventDefault();

        //  Abort any pending request

        var fields = "input, select, button, textarea";
        var $form = $(this);
        var $inputs = $form.find(fields);
        var serializedData = $form.serialize();
        $inputs.prop("disabled", true);
      var  request = $.ajax({
            url: processUrl,
            dataType: 'json',
            type: "post",
            data: serializedData
        });
        // Callback handler that will be called on failure
        request.fail(function (jqXHR, textStatus, errorThrown) {
            console.log(
                    "The following error occurred: " +
                    textStatus, errorThrown
                    );

        });
        request.always(function () {
            // Reenable the inputs
            $inputs.prop("disabled", false);
        });

        request.done(function (response, textStatus, jqXHR) {
            $(updateSection+' .bubblingG').fadeOut(2000,function(){
                 $(updateSection).before(response.msg);
                 if(updateSection == "#personalInfo"){
                    $('#avatar #ResellerEmail').val(response.reseller.email);
                 }
            });//({visibility: 'hidden'}, 2000, 'linear');//css("visibility", "hidden");

        });

        // Prevent default posting of form
//        event.preventDefault();
    });
}

这个问题让我哭了。任何帮助将不胜感激。

0 个答案:

没有答案