2017-03-20 6 views
0
<?php 
      echo $this->Form->postLink(
      '', 
      array('action' => 'edit',$comment['id'], 
       'controller'=>'Comments', 

      ),array('class'=>'glyphicon glyphicon-edit','onClick'=>'showDialog()'))?> 

を動作しません。これは私が モデルダイアログボックスがポップアップであるアイコンをクリックしたときに、私が作成したコメントの編集アイコンです。コメントを編集VAIモーダルダイアログボックスが正しく

<div id="overlay" onClick="hideDialog()"></div> 
<div id="dialog"> 
<h2>Edit Comment <span onClick="hideDialog()">&times;</span></h2> 

    <?php echo $this->Form->create('Comment',array('enctype'=>'multipart/form-data'));?> 
<?php echo $this->Form->input('Comment.comment',array('class'=>'form-control')); 
    echo $this->Form->end('Save'); 
    ?> 

</div> 
<script> 
function showDialog() { 
document.getElementById("overlay").style.display = "block"; 
document.getElementById("dialog").style.display = "block"; 
} 
function hideDialog() { 
document.getElementById("overlay").style.display = "none"; 
document.getElementById("dialog").style.display = "none"; 
} 
</script> 

コメントを編集するためのダイアログが、コメントはちょうど別の コメントとして追加しますが編集できません。どうして?ここにあなたがいる場合の条件文の一部に値を代入しようとしている

public function edit($id = null) { 
     $user_id=$this->Auth->user('id'); 
     $comment_fields=$this->Comment->findById($id); 
     $comment_id=$comment_fields['Comment']['id']; 
     $comment = $this->Comment->findById($id); 
     if (!($user_id == $comment_fields['Comment']['user_id'])) { 
      $this->Flash->error(__('Unable to edit your post.')); 
      return $this->redirect(array('action'=>'../posts/view',$comment_fields['Comment']['foreign_id'])); 
     } 

     if (!$comment) 
     { 

      $this->redirect(array('action'=>'../posts/view',$comment_fields['Comment']['foreign_id'])); 
     } 
     if ($this->request->is(array('post', 'put'))) { 

      if($this->Comment->id = $id) 
      { 
       if ($this->Comment->save($this->request->data)) { 
        $this->Flash->success(__('Your Comment has been updated.')); 
        $this->redirect(array('action'=>'../posts/view',$comment_fields['Comment']['foreign_id'])); 
       } 
      }else{ 
       $this->Flash->error(__('Unable to update your Comment.')); 
      } 


     } 
     if (!$this->request->data) { 
      $this->request->data = $comment; 
     } 
    } 
+0

試し 'ます$ this->要求 - >データ[ 'array_index'] [ 'ID'] = $ id'と – urfusion

+0

を更新中に問題があるとき投稿リンクにonclickメソッドを使用していますが、コントローラの編集機能が動作しません。 – Tommy

答えて

0

私のコントローラで編集機能です!

if($this->Comment->id = $id):条件を確認するための部分であるため、これは間違っています。

あなたの問題を解決するには、次のようになります。

$this->Comment->id = $id; 
if ($this->Comment->exists()) { 
    if ($this->Comment->save($this->request->data)) { 
     $this->Flash->success(__('Your Comment has been updated.')); 
     $this>redirect(array('action'=>'../posts/view',$comment_fields['Comment']['foreign_id'])); 
    } 
} 
else { 
    $this->Flash->error(__('Unable to update your Comment.')); 
} 
+0

編集ページにedit ctpを使用すると、機能がすぐに動作します。私はちょうど私のモーダルダイアログボックスを介して私のコメントを編集したい。しかし編集ポストリンクは編集機能のために働いていない。私はそうだと思う – Tommy

+0

次に、あなたのモーダルのフォームでアクションを使用する必要があります: '<?php echo $ this-> Form - > create( 'Comment'、array( 'enctype' => 'multipart/form-data'、 'action' => '....'));?> ' – Aarrbee

関連する問題