问题描述
我现在正在练习我的 CodeIgnitor,但我仍然是新手。我正在填写查询表单,并希望确保它检查表单是否经过正确验证。点击提交按钮后,它会将表单发送到相应的电子邮件。
但我遇到了问题,说getmethod() 已弃用,并且我的提交按钮没有响应。
事实上,我不明白弃用的意思是什么,在使用 getmethod() 之前,有没有人可以帮助我澄清这部分并提供任何其他方法。
你们能检查一下我在提交按钮上做错了什么吗?如果您有更好的方法来验证表单并将电子邮件发送给相应的更简洁的方法。也很精彩。
这是我的代码:-
config/Controller/Contact Controller.PHP
<?PHP
namespace App\Controllers;
use CodeIgniter\Controller;
class ContactController extends Controller
{
// CONTACT PAGE
public function contact()
{
//Library
helper(['form']);
//Contact Data Initiate
$contact_data = [];
$data = [
'Meta_title' => 'Contact | MFD',];
//Check request if it is post
if($this->request->getmethod() == 'post'){
// Setting Form Rules
$settings_rule = [
'email' => [
'name' => 'required|min_length[3]|max_length[20]','email' => 'required|valid_email','subject' => 'required',],'msg' => 'required',];
if($this->validate($settings_rule)){
//Validation true send message successfully sent and return back to the same page
return view('page_templates/contact',$data);
}else {
// Will provide check list of error of the one we create
$contact_data['validation'] = $this->validator;
}
}
return view('page_templates/contact',$data);
}
views/page_templates/contact.PHP
<div class="col-lg-8 mt-5 mt-lg-0">
<?PHP if(isset($validation)) : ?>
<div class="error-message">
<?= $validation->listErrors(); ?>
</div>
<?PHP endif ?>
<form method="post" role="form" class="PHP-email-form">
<div class="row">
<div class="col-md-6 form-group">
<input type="text" name="name" class="form-control" id="name"
value="<?= set_value('name'); ?>" placeholder="Your Name">
</div>
<div class="col-md-6 form-group mt-3 mt-md-0">
<input type="email" class="form-control" name="email" id="email"
value="<?= set_value('email'); ?>" placeholder="Your Email">
</div>
</div>
<div class="form-group mt-3">
<input type="text" class="form-control" name="subject" id="subject"
value="<?= set_value('subject'); ?>" placeholder="Subject">
</div>
<div class="form-group mt-3">
<textarea class="form-control" name="message" rows="5" placeholder="Message"><?= set_value('msg'); ?></textarea>
</div>
<!-- <div class="my-3">
<div class="loading">Loading</div>
<div class="error-message"></div>
<div class="sent-message">Your message has been sent. Thank you!</div>
</div> -->
<div style="height: 10px;"></div>
<div class="text-left button">
<button type="submit" name="submit">Send Message</button>
</div>
</form>
</div>
如果有人可以帮助我,我真的很感激。谢谢
解决方法
您收到的确切弃用消息是什么?您使用的是哪个版本的 CodeIgniter?
弃用只是意味着该接口将在未来的修订版中删除。
但我只是查看了源代码和文档,该方法似乎并未被弃用。可选参数 $upper
已弃用。
因此您不想使用 $this->request->getMethod(TRUE | FALSE)
,因为将来不会支持它。但是 $this->request->getMethod()
应该没问题。
至于你的按钮问题......你没有提供足够的信息。
要使客户端呈现的按钮响应单击事件,您需要添加一个侦听器。我猜你没有。事情是这样的。
<script>
let button = document.querySelector(".button button");
button.addEventListener("click",function(event) {
// Do your work here...
});
</script>