Я хотел спросить, почему ответ от запроса ajax с использованием родного ajax не публикуется или возвращает мою всю страницу? есть ли что-нибудь, что я должен знать? Я просмотрел документацию на jquery.com, и ничего не упоминается о чем-то подобном, если я не ищу другого места. Могу ли я получить помощь в том, почему это происходит?jquery ajax codeigniter
Это функция, которая обрабатывает валидацию рассматриваемой формы.
Джо
function showsupport()
{
$this->form_validation->set_rules('supportername','Your Name','trim|required|max_length[20]|xss_clean');
$this->form_validation->set_rules('supporteremail','Email Address','trim|required|valid_email|xss_clean');
$this->form_validation->set_rules('pledgedate','Pledge Date','trim|required|xss_clean');
$this->form_validation->set_rules('messagetxt','Your Message','trim|required|xss_clean');
if($this->form_validation->run() == FALSE)
{
echo validation_errors();
} else {
$this->load->model('support_m');
$name = $this->input->post('supportername');
$email = $this->input->post('supporteremail');
$date = $this->input->post('pledgedate');
$msg = $this->input->post('messagetxt');
$qry = $this->support_m->storepledge($name,$email,$date,$msg);
if($qry){
//$this->template->write_view('content','thanks');
//$this->template->render();
$datamsg['supportmsg'] = 'Message Added Successfully';
}else{
echo 'There was an error inserting into db';
}
}
}
Это мнение с формой генерируемой.
<?php
$formdata = array('id'=>'suppform');
echo form_open('homepage/showsupport',$formdata);
$namedata = array('name'=>'supportname','id'=>'supportname','size'=>'30','max_length'=>'25','value'=>set_value('supportname'));
echo '<label for="supportername">Your Name:'.form_input($namedata).'</label><br /><br />';
$emaildata = array('name'=>'supporteremail','id'=>'supporteremail','size'=>'30','max_lenth'=>'25','value'=>set_value('suppoteremail'));
echo '<label for="supporteremail">Email Address:'.form_input($emaildata).'</label><br /><br />';
$pledgedata = array('name'=>'pledgedate','id'=>'pledgedate','size'=>'30','max_length'=>'20','value'=>set_value('pledgedate'));
echo '<label for="pledgedate">Today\'s Date:'.form_input($pledgedata).'</label><br /><br />';
$msgdata = array('name'=>'messagetxt','id'=>'messagetxt','col'=>'2','rows'=>'8');
echo '<label for="messagetext">Your Pledge:'.form_textarea($msgdata).'</label><br />';
$submitdata = array('name'=>'submitbtn','id'=>'submitbtn','value'=>'Send');
echo '<label for="submitbutton">'.form_submit($submitdata).'</label><br />';
echo form_close();
?>
</div>
<div id="errorsechoed"><?php echo validation_errors();?></div>
HTML, из retured страницы сваливается в DIV #errorsechoed
$('#suppform').submit(function(eve){
eve.preventDefault();
$.ajax({
type: 'POST',
cache: false,
url: 'homepage/showsupport',
data: $('#suppform').serialize(),
beforeSend: function(){
$('#supportform').block({message:'<h4> Processing...</h4>'})
},
complete: function(){
},
success: function(html){
$('#errorsechoed').text(html);
}
});
});
Я пытался получить это понял, и я думаю, что я сделал некоторый прогресс, вот что у меня есть :
a) библиотека шаблонов от Уильяма Колина работает там, где указаны области, и поэтому только конкретная область будет обновляться все время, а не единственная страница. В результате это похоже на работу, отличную от других стандартных настроек для codeigniter. Это определенно мешает jQuery получить ответ от сервера. Он получает биты библиотеки шаблонов (т. Е. Области) и выводит их, что приводит к повторной перестройке всей страницы.
б) При запуске библиотеки form_validation, Template не позволяет просто загрузить вид нормальный путь в CodeIgniter, а это можно сделать, выполнив команду:
$this->template->write_view('contentregion','viewname'); //writes the view
$ this-> template- > визуализации(); // отображает представление на экране.
так что если это не будет сделано, если проверка не удалась, сообщения об ошибках, выпрессованные библиотекой formvalidation, просто никогда не попадают в представление.
Я пробовал много перестановок с использованием функций, которые поставляются с этой библиотекой, и я все еще могу отобразить другую страницу моего сайта. путать
ВЫВОД:
Я думаю, что эта библиотека шаблонов является большим, но она нуждается в некотором обновлении, так что эти вопросы будут выполнены. Я должен буду смотреть на другие системы шаблонов, когда мне нужно сделать сайт с большим количеством аякса. Надежда Г-н Уильям может видеть это и помогать в этом.
Спасибо сообществу за проспект, чтобы сказать то, что я узнал. Надеюсь, это кому-то полезно.
Можете ли вы привести пример кода, с которым работаете? – stormdrain
, пожалуйста, проверьте, что я добавил, и дайте мне знать, если я делаю что-то неправильно. Спасибо, что я хочу помочь. –
Можете ли вы разместить свой javascript-код? Я не вижу никакого AJAX, идущего здесь. –