Questions? Comme-6ren">
gpt4 book ai didi

php - 验证 PHP 表单并更改提交按钮而不是重定向到状态页面

转载 作者:行者123 更新时间:2023-12-01 07:31:42 25 4
gpt4 key购买 nike

我这里有一个基本的 PHP 表单,提交后会发送电子邮件:

<div id="contact">
<form id="contact_form" action="<?=base_url()?>contact/email_form" method="post" name="contact">
<h4>Questions? Comments?</h4>
<p>
<label>Name</label>
<input name="name" id="name" type="text" class="text" />
</p>
<p>
<label>Email</label>
<input name="email" id="email" type="text" class="text" />
</p>
<p class="message">
<label>Question</label>
<textarea name="message" id="message" rows="5" cols="5"></textarea>
</p>
<p class="alt">

<input value="Send Info" id="submitbutton" type="submit">
</p>
</form>

此表单运行良好,但我目前没有验证,因此即使字段为空也提交表单。不是可以用jquery做验证吗?

表单提交后,它会发布到 codeigniter 中的 Controller 文件,该文件使用 codeigniter 中的电子邮件帮助程序执行电子邮件逻辑。请参阅此处:

if($this->email->send())
{
echo 'Message has been sent';
}
else
{
show_error($this->email->print_debugger());
}

正如您所看到的,这会重定向到 email_form View 并回显结果。是否可以只停留在具有表单的同一联系页面上,并在那里显示帖子的结果,而不是重定向到 <?=base_url()?>contact/email_form看法?我正在考虑将“提交”按钮的文本更改为“消息已发送”或类似的内容,然后清除表单字段。这样他们就可以停留在联系页面上。

这一切都可以用 jquery 实现吗?谢谢!

最佳答案

是的,一切皆有可能。

具体来说,你会做这样的事情:

$( '#submitbutton' ).click(function(){
$.ajax(); //do ajax

return false; //should override default form submission
});

您将寻找 $.post()功能。但是,我喜欢保持尽可能多的控制,所以我使用 $.ajax()功能。

它们都需要处理 URL 和数据,因此这对您非常有用。

您将在 $.ajax() 的“success:”参数或 $ 的成功回调中处理成功返回(大概需要处理特定的成功代码) .post().
在该函数内部,您可以使用 CSS selectors 更改 DOM 元素的内容(例如示例中的按钮)。和 jQuery 函数如 .html() .

这里是some tutorials开始使用 jQuery!

请记住,仅验证电子邮件是不够的。您还需要检查其他可能性!
此外,请确保您在 POST 之后在服务器上进行验证。 Javascript 可以被关闭,然后(如果您在浏览器上进行验证)您的所有验证将没有任何作用来保护您的服务器或一般公众。

总之,您可以在 jQuery 中使用 $.post()$.ajax() 将数据传递到服务器进行处理。

关于php - 验证 PHP 表单并更改提交按钮而不是重定向到状态页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com