Kohana: ¿cómo crear un formulario sin actualizar?

¿Cómo crear un formulario jQuery + ajax sin actualizar? Este es mi controlador y vistas:

http://pastebin.com/GL5xVXFZ

En PHP "claro", creo algo como esto:

$(document).ready(function(){
    $("form#submit").submit(function() {

    var note = $('#note').attr('value');

        $.ajax({
            type: "POST",
            url: "add.php",
            data: "note="+ note,
            success: function(){
                $('form#submit').hide(function(){$('div.success').fadeIn();});

            }
        });
    return false;
    });
});

en el archivo add.php es INSERTAR en la base de datos.

preguntado el 12 de junio de 12 a las 10:06

1 Respuestas

Hay formas más complicadas de hacer esto, por ejemplo, detectar una solicitud ajax en su acción y luego, si se detecta, imprimir una respuesta javascript. La forma en que harías esto es

DESARROLLADOR

function postForm(note){
     $.ajax({
      url  : '/controller/action',
      type : 'POST',
      data : 'note='+note,
      success : function(jsn){
        var json = $.parseJSON(jsn);
        if(json.status == 200)
          alert('Completed Successfully');
        else
          alert('Not Completed Successfully');
      },
      error : function(xhr){
        //Debugging
        console.log(xhr);
      }


     });
   }

PHP

  <?php  
  Class Controller_ControllerName extends Controller_Template{
      public $template = 'template';

      public function action_index(){}

      public function action_form(){
        $this->auto_render = false; // <-EDITED
        $array = array();

        //PROCESSING FORM CODE HERE

        if($success){
          $array['status'] = 200;
        }else{
          $array['status'] = 500; 
        }

        print json_encode($array);
      }

    }
?>

este es un ejemplo que he hecho sin probarlo, pero seguramente debería ser suficiente para que trabajes en él

Respondido 22 Feb 13, 21:02

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