¿Cómo guardar los valores de las casillas de verificación en cakephp usando ajax?

Quiero guardar los valores de la casilla de verificación usando ajax.

Aquí está mi código actual que deseo actualizar para usar ajax.

aquí está la vista

    <?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() ?>

el javascript

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

el controlador

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

el modelo

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

editar: agregué un oyente en la casilla de verificación

preguntado el 02 de julio de 12 a las 03:07

¿Hasta dónde has llegado? ¿Ha puesto oyentes en las casillas de verificación que activan una función cuando se modifican? Si lo ha hecho, busque en la función JQuery ajax. Puede enviar una solicitud de publicación con datos, que se comporta como un formulario publicado normal. -

@swiecki sí, agregué un oyente en la casilla de verificación, pero aún así no guardaré un valor en la base de datos :( -

1 Respuestas

De acuerdo con su código actual, hay dos formas de almacenar valores de casillas de verificación en la base de datos. O tendrá que manipular los datos publicados recibidos en su ajax_method() y convertirlos en la matriz como se muestra a continuación

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

Luego puede usar $this->Post->saveAll($this->request->data);

o puede usar el siguiente código para guardar los valores de las casillas de verificación en la base de datos.

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

Entonces puedes usar el método saveAll().

Respondido 02 Jul 12, 11:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.