2012-07-02 3 views
1

아약스를 사용하여 체크 박스의 값을 저장하고 싶습니다.ajax를 사용하여 cakephp의 체크 박스 값을 저장하는 방법은 무엇입니까?

다음은 아약스 사용을 위해 업데이트하려는 현재 코드입니다. 여기

<?php $i = 0; 
     foreach ($summary as $sum) { 
      ?> 
      <tr class="font-size12"> 
       <td><p><?php echo $sum['posts']['title']; ?></p></td> 
       <td class="width450"><p><?php echo $sum['posts']['content']; ?></p></td> 
       <td><p class="margin-left28"><?php echo $sum['members']['username']; ?></p></td> 
       <td><p><?php echo $sum['posts']['deadline']; ?></p></td> 
        <?php echo $this->Form->create("Posts", array("action" => "update_checkbox")) ?> 
       <td> 
        <?php 
        echo $this->Form->input('Post.' . $i . '.id', array("type" => "hidden", "label" => false, "value" => 
         $sum['posts']['id'])) 
        ?> 
        <?php 
        echo $this->Form->input('Post.' . $i . '.done', array("type" => "checkbox", "label" => false, "value" => "1", "id" => "idCheck[]", "onclick" => "getboxes()")) 
        ?> 
       </td> 
      </tr> 

      <?php $i++; 
     } 
     ?> 
    </table> 
<?php echo $this->Form->end() ?> 

자바 스크립트

function getboxes(){ 
    $("idCheck[]").click(function(){ 
     $.ajax({ 
      url: '../../../../Controller/PostsController', 
      data: { action: 'checkingBox' }, 
      type: 'post' 
//   , 
//   success: function(output) { 
//    alert(output); 
//   } 
     }); 
    }); 
} 

제어기

public function update_checkbox() { 
     // debug($this->data); 
     $var = $this->Post->saveCheckBox($this->data); 
     $this->set("result", $var); 
    } 

모델

public function saveCheckBox($checkbox) { 
     debug($checkbox); 
     $this->saveAll($checkbox['Post']); 
    } 
인 ,745,

편집 : 확인란에 청취자를 추가했습니다.

+0

얼마나 멀리 받았습니까? 변경된 기능을 실행하는 체크 상자에 리스너를 넣었습니까? 이 작업을 수행했다면 JQuery ajax 함수를 살펴 보자. 정상적인 게시 된 양식처럼 작동하는 데이터가 포함 된 게시물 요청을 보낼 수 있습니다. – swiecki

+0

@swiecki yeps 체크 상자에 리스너를 추가했지만 여전히 DB에 값을 저장하지 않습니다. ( – Catherine

답변

0

현재 코드에 따르면 데이터베이스에 체크 박스 값을 저장하는 두 가지 방법이 있습니다. 당신은 게시 된 데이터는() 당신의 ajax_method로받은 조작하고 배열처럼해야 할 것이다 어느 다음

[Post] => array(
       [0] => .... 
       [1] => .... 
       ); 

아래> 포스트> 시려면 ($ this-> 요청 this- 사용 $ C -> 데이터);

또는 다음 코드를 사용하여 확인란 값을 데이터베이스에 저장할 수 있습니다.

echo $this->Form->input('Case.CHECK_ID][', array('type' => 'checkbox')); 

그런 다음 saveAll() 메소드를 사용할 수 있습니다.

관련 문제