У меня проблема с проверкой в моем контактном виде. Это мой код для AJAX:
$(document).ready(function(){
$('.contact_form').submit(function(event){
event.preventDefault();
let name = $('#name').val();
let title = $('#title').val();
let mail = $('#mail').val();
let text = $('#text').val();
$.ajax({
type:'POST',
url:'../Strona/contact',
dataType:'json',
crossDomain:false,
cashe:false,
contentType:"text/javascript",
data:{
name: name,
title: title,
mail: mail,
text: text
}
})
.done(function(data){
console.log(data);
if(data.res === 'yes'){
console.log(data);
$('.contact_form').html(data.list);
}else{
$.each(data.list,function(k,v){
console.log(data);
$('.error_'+k).append(v);
});
}
});
});
И мой контроллер:
if($this->request->is('post')){
$data = $this->data;
$errors=array();
if(!$data['Contact']['name']){$errors['name'] = 'Bitte geben Sie einen Namen ein';}
if(!$data['Contact']['email']){$errors['email'] = 'Bitte geben Sie eine E-Mail-Adresse ein';}
if(!$data['Contact']['title']){$errors['title'] = 'Bitte geben Sie einen Titel ein';}
if(!$data['Contact']['description']){$errors['description'] = 'Bitte geben Sie eine Nachricht ein';}
if(count($errors) > 0){
$result = array('res'=>'no','list'=>$errors);
$el['Result'] = $result;
$el['Contact'] = $data;
$el['Contact'] = $el['Contact']['Contact'];
$this->set('errors');
$this->set('_serialize', array('errors'));
$this->set('el',$el);
}else{
$result = array('res'=>'yes','list'=>'Vielen Dank für das Senden einer E-Mail');
$txt = $data['Contact']['name'].'<br>'.$data['Contact']['description'];
$subject = $data['Contact']['title'];
$from = $data['Contact']['email'];
$this->Ajax->mailsend($txt, $subject, $from);
$data['result'] = $result;
$this->Contact->save($data);
$this->Session->setFlash('Nachricht gesendet');
$this->redirect(array('action' => 'contact/'));
}
}
Когда я нажимаю кнопку, чтобы отправить сообщение и появляется пустой ввод, должна появиться ошибка, но ничего не происходит Я думаю, что AJAX не начинается после отправки, но я не знаю почему.
Я думаю, может быть, проблема в моем взгляде.
<form method="POST" action="" class="contact_form">
<div class="form-group">
<input type="text" class="form-control" id="name" name="data[Contact][name]" value="<?php echo $el['Contact']['name']; ?>" placeholder="Dein Name"/>
<div class="error error_name"></div>
</div>
<div class="form-group">
<input type="email" class="form-control" id="email" aria-describedby="emailHelp" name="data[Contact][email]" value="<?php echo $el['Contact']['email']; ?>" placeholder="Deine E-Mail-Adresse"/>
<div class="error error_email"></div>
</div>
<div class="form-group">
<input type="text" class="form-control" id="title" name="data[Contact][title]" value="<?php echo $el['Contact']['title']; ?>" placeholder="Betreff"/>
<div class="error error_title"></div>
</div>
<div class="form-group">
<textarea class="form-control" id="describe" name="data[Contact][description]" placeholder="Deine Nachricht" rows="10"><?php echo $el['Contact']['description']; ?></textarea>
<div class="error error_description"></div>
</div>
<input type="submit" id="send" class="btn btn-primary" value="Senden">
</form>