2012-04-30 3 views
0

это мой просмотр javascript и вызов контроллера. JavascriptФорма сообщения переменных в контроллере

$('#contact').submit(function(e){ 
e.preventDefault(); 
var name= $('input[name=contactname]').val(); 
var email= $('input[name=contactemail]').val(); 
var message= $('textarea[name=message]').val(); 
$.post("index.php/homepage/sendMail",{name:name, email:email, message:message}, 
function(){ 
    $('#contactUsMask').hide(); 
    $('#contactAckMask').show(); 
    }); 
}); 

контроллер

$from = $_POST['email']; 
$msg = $_POST['message']; 
$name = $_POST['name']; 

$config['protocol'] = 'sendmail'; 
$config['mailpath'] = '/usr/sbin/sendmail'; 
$config['mailtype'] = 'html'; 
$config['charset'] = 'iso-8859-1'; 
$config['wordwrap'] = TRUE; 

$this->email->initialize($config); 
$this->email->from($from, $name); 
$this->email->to($to); 
$this->email->subject($sub); 
$this->email->message($msg); 
if($this->email->send()) 
{ 
    return true; 
} 
else 
{ 
    echo $this->email->print_debugger(); 
    return false; 
} 

я не могу читать почтовые переменные, пожалуйста, помогите. все усилия оценили

+1

что делает 'var_dump ($ _ POST);' выходы ? – adrien

+0

Если вы используете CI, вы должны использовать класс ввода из-за преимуществ безопасности, которые он включает. Чтобы получить пост-данные, используйте $ this-> input-> post() вместо глобального массива post. Однако я подозреваю, что ваша проблема связана с JavaScript (выглядит как jquery для меня), если глобальный массив сообщений пуст. – musoNic80

+0

, вы также можете назначить отправленный объект для var, например 'var postData = {name: name, email: email, message: message};' и проверить с помощью 'console.log (postData);', которые вы действительно отправляете. Также вы могли бы набрав на вкладке «Сеть» (обычно) то, что было отправлено, и было отправлено действие вообще. – Eugene

ответ

-1

Если вы делаете это кросс-сайт, вы столкнулись проблемы кросс-сайт, так как .post является оберткой $ .ajax

+0

URL-адрес кажется относительным. – mmarinero

0

пытаются использовать $("#testform").serialize() в запросе после как

$('#contact').submit(function(e){ 
e.preventDefault(); 
$.post("index.php/homepage/sendMail",$("#contact").serialize(), 
function(){ 
    $('#contactUsMask').hide(); 
    $('#contactAckMask').show(); 
    }); 
}); 

и в контроллере вы должны будете использовать $this->input->post('email');, чтобы получить значение электронной почты .. и, как они сказали, что пытаются сделать var_dump($_POST)

+0

Зачем ты оставил все вары? В этом случае необходимо предотвратить только звонок и сообщение. – Eugene

+0

@ Eugene thats right, я только что отредактировал код .. – zaherg

Смежные вопросы