2013-05-15 4 views
1

아약스로 간단한 양식 메일을 보내려고합니다. 그러나 양식에서 데이터를 가져올 수 없습니다.아약스로 양식 데이터 가져 오기

내 양식 :

<?php echo $this->Form->create('Page', array('default' => false)); ?> 
<?php echo $this->Form->input('texto', array('label' => FALSE, 'type' => 'textarea)); ?> 
<?php echo $this->Form->submit('Enviar', array('id' => 'enviar')); 
     echo $this->Form->end(); 

내 아약스 :

$(document).ready(function() { 

$('#enviar').click(function(){ 
$.ajax({ 
    type: 'post', 
    complete: function(r){ 
    $('div.teste').html('<h4> Enviado!</h4>'); 
    } 
    }) 
}) 
}); 

컨트롤러 :

if($this->request->is('ajax')) { 
    debug($this->request->data); 

App::uses('CakeEmail', 'Network/Email'); 
$Email = new CakeEmail('gmail'); 
$Email->to('[email protected]'); 
$Email->subject('Nova Mensagem - Site Althi'); 
$Email->send($mensagem); 

      } 

} 

그리고 내 컨트롤러 이메일을 보냅니다. 전자 메일이 sucefull을 보냈지 만 this->request->data의 데이터는 빈 배열입니다. 문제는 아약스에서 전달 된 데이터라고 생각합니다. 제발 도와 드릴까요?

+0

내가 볼 수없는'this-> 요청 -> data' 어디서나 스크립트입니다. –

+0

컨트롤러로 편집 됨 –

+0

'$ mensagem'이 (가) 귀하의 양식에 있습니까? –

답변

0

ajax 함수 호출에서 data 값을 설정해야합니다. 여기

$.ajax(
    thecontrollerurl, 
    {data: $("#theformid").serialize()} 
); 

대한 추가 정보 : http://api.jquery.com/jQuery.ajax/

+0

괜찮지 만 내 컨트롤러에서'입력 'Texto'를 어떻게 가져올 수 있습니까? –

+0

cakephp를 사용하지 않지만 게시/요청을 처리하는 일반 컨트롤러와 비슷해야한다고 생각합니다. 요청 데이터를 디버그하십시오. – ihsan

-1
$data = $this->Js->get('#YourformORelementID')->serializeForm(array('isForm' => true, 'inline' => true)); 

그리고

$this->Js->get('#enviar'); 
$this->Js->event('click', 
$this->Js->request(
    array('controller' => 'someController', 'action' => 'someAction'), 
    array('async' => true, 'data' => $data, 'update' => 'div.teste') 
)); 
관련 문제