Passar $_POST via ajax jquery

312 views
Skip to first unread message

ezpabon

unread,
Jan 20, 2011, 5:45:48 PM1/20/11
to Kohana Php, ezp...@gmail.com
Olá pessoal, estou tentando passar dados de um formulário para uma
action usando a função $.ajax do jQuery mas não há macumba que faça
esses dados passarem como POST heheh
Fiz alguns testes configurando como GET e dessa forma funciona sem
problemas, mas minha necessidade é passar por POST.

Exemplo:

Formulário:

<?php
echo Form::open();
echo Form::input('email', ' ' '', array('id'=>'email'));
echo Form::button('submit', 'Enviar');
echo Form::close();
?>
<script>
$(function(){
$("form").submit(function () {

var email = $("#email").val(); // Pega o valor do input

$.ajax({
type: "POST",
url: "contato/enviar", // Já tentei caminho absoluto e
nada
data: "email:" + email,
async: true, // Tentei com false e também
não vai
success: function(msg){
alert( msg );
}
});
return false; // Evita o refresh da página
});
});
</script>

Controller que vai receber a requisição:

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Contato extends Controller {

public function action_enviar(){

if (Request::$is_ajax){

if ($_POST){
// Rotina com os dados do post enviados
pelo jquery
$this->request->response = 'Hmmm aqui
não vai';
}
$this->request->response = 'Aqui retorna
beleza';
}
}
}

Edinho Almeida

unread,
Jan 20, 2011, 7:19:08 PM1/20/11
to kohan...@googlegroups.com
Opa,

Dentro do objeto passado para o $.ajax tente:
data: $('form').serialize(),

Abs
Edinho Almeida
11 8018-8019


2011/1/20 ezpabon <ezp...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.


renan vaz

unread,
Jan 21, 2011, 12:40:22 AM1/21/11
to kohan...@googlegroups.com
Isso mesmo, é que vc está passando o parametro "data" errado no $.ajax do jQuery, ele tem que ser um JSON:
Você fez: data: "email:" + email,
O correto é:  data: {email: email},

Abs,
Renan Vaz
http://www.renanvaz.com.br
Reply all
Reply to author
Forward
0 new messages