duannuo4620 2015-10-14 22:00
浏览 32
已采纳

Yii:模型 - >保存 - 不可预测的保存

I have some view for every objects of array ($this->receiveList)and there are 2 buttons(2 forms with input submit) for every objects too. If i trying to change status value of someone of objects(models) - only one(1st) object will be changed(saved new value for status) by all 4 buttons. BUT ONLY 2 BUTTONS READY FOR THAT AND 2 for another object.
WHY ITS HAPPENING Guys?
Example img: http://s017.radikal.ru/i441/1510/c7/974e00e3f8be.jpg

$this->receiveList = Invite::model()->findAll( $criteria2 );    // array of 2 objects

for ( $key=0; $key <= count($this->receiveList) - 1; $key++ ) {
    // yes
    if ( isset($_POST['formInviteYes']['sendRequest']) ) {
        unset($_POST['formInviteYes']['sendRequest']);

        $this->receiveList[$key]->status = 1;
        $this->receiveList[$key]->save(false);

        $this->refresh();
    }
    // no
    if ( isset($_POST['formInviteNo']['sendRequest']) ) {
        unset($_POST['formInviteNo']['sendRequest']);

        $this->receiveList[$key]->status = 0;
        $this->receiveList[$key]->save(false);


        $this->refresh();
    }

    print('<form action="" method="post" id="">');
        print('<input type="submit" name="formInviteYes[sendRequest]" value="Согласиться"" class="inviteAnswer">');
    print('</form>');

    print('<form action="" method="post" id="">');
        print('<input type="submit" name="formInviteNo[sendRequest]" value="Отказаться" class="inviteAnswer">');
    print('</form>');
}
  • 写回答

2条回答 默认 最新

  • dongyi1015 2015-10-15 19:15
    关注

    You need to name submit buttons to contain info about object it's related to

            print('<input type="submit" name="formInviteNo[' . $invite->id . '][sendRequest]" value="Отказаться" class="inviteAnswer">');
    

    And then you could implement your logic in this way:

    $this->receiveList = Invite::model()->findAll( $criteria2 );    // array of 2 objects
    
    foreach ($this->receiveList as $invite) {
        // yes
        if ( isset($_POST['formInviteYes'][$invite->id]['sendRequest']) ) {
            unset($_POST['formInviteYes'][$invite->id]['sendRequest']);
    
            $invite->status = 1;
            $invite->save(false);
    
            $this->refresh();
        }
        // no
        if ( isset($_POST['formInviteNo'][$invite->id]['sendRequest']) ) {
            unset($_POST['formInviteNo'][$invite->id]['sendRequest']);
    
            $invite->status = 0;
            $invite->save(false);
    
            $this->refresh();
        }
    
    print('<form action="" method="post" id="">');
        print('<input type="submit" name="formInviteYes[' . $invite->id . '][sendRequest]" value="Согласиться"" class="inviteAnswer">');
    print('</form>');
    
    print('<form action="" method="post" id="">');
        print('<input type="submit" name="formInviteNo[' . $invite->id .'][sendRequest]" value="Отказаться" class="inviteAnswer">');
    print('</form>');
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了
  • ¥20 firefly-rk3399上启动卡住了
  • ¥15 如何删除这个虚拟音频
  • ¥50 hyper默认的default switch
  • ¥15 网站打不开,提示502 Bad Gateway
  • ¥20 基于MATLAB的绝热压缩空气储能系统代码咨询
  • ¥15 R语言建立随机森林模型出现的问题
  • ¥15 中级微观经济学,生产可能性边界问题
  • ¥15 TCP传输时不同网卡传输用时差异过大
  • ¥15 请各位看看我写的属于什么算法,或者有更正确的写法?