Javascript 在联系人表单中使用电话/电子邮件的单一输入
我正在考虑使用带有用户输入的联系人表单,用于电话或电子邮件(通过单个输入) 我想知道是否有可能以某种方式使用HTML数字/电子邮件输入?我应该在服务器端进行这种类型的验证吗 HTML表单:Javascript 在联系人表单中使用电话/电子邮件的单一输入,javascript,php,html,Javascript,Php,Html,我正在考虑使用带有用户输入的联系人表单,用于电话或电子邮件(通过单个输入) 我想知道是否有可能以某种方式使用HTML数字/电子邮件输入?我应该在服务器端进行这种类型的验证吗 HTML表单: contact.php中的代码: $name=trim(带斜杠($\u POST['fullname']); $ep_input=trim(条斜杠($_POST['emailPhone']); //名称验证 if(strlen($name)
contact.php中的代码:
$name=trim(带斜杠($\u POST['fullname']);
$ep_input=trim(条斜杠($_POST['emailPhone']);
//名称验证
if(strlen($name)<2){
$error['name']=“无效名称”;
}
//电子邮件和电话号码验证。首先,电子邮件。。。
如果(!preg\u match('/^[a-z0-9&\'-\+]+@[a-z0-9\-]+.([a-z0-9\-]+.*+[a-z]{2}/is',$ep\U输入)){
$error['email']=“无效的电子邮件地址。”;
}
//现在手机(应该更准确,但我们现在保持简单…)
如果(!preg_匹配('/^[0-9]*$/'),$ep_输入){
$error['phone']=“无效的电话号码。”;
}
我想知道是否有可能对两者都使用HTML5验证。如果没有,在将表单数据发送到PHP文件之前,如果有人能与一些JS/Jquery/AJAX代码共享一种更好的方法来实现这一结果,那就太好了
以下是一个临时解决方案,它仅使用html和php通过单个html表单输入获取电话号码或电子邮件: html(具有文本类型):
php:
我想用JS有更好的方法来实现这一目标,但由于没有答案,我希望这段代码也能有用。不要这样做。这会让用户感到困惑。相反,有两个输入,并有一个清晰的选项供用户选择。那么
type=“text”呢
?这两种方法都应该适用。有没有一种好方法可以让这个选项看起来像一个输入?有没有一种方法可以用更少的输入来完成它,只需在这里输入电子邮件或电话-想不出一种方法来完成它。为什么你不尝试使用jquery或javascript?我正在尝试,但还想不出正确的方法来完成任何事情。你可以吗请为您的代码添加一些解释,以便其他人能够更轻松地理解解决方案的工作原理?
<form name="contact" target="contact.php" method="post">
<input name="fullname" placeholder="Name" type="text" value="" minlength="2" required="">
<input name="emailPhone" placeholder="email / phone" type="email" value="" required="">
<input value="send" type="submit">
</form>
$name = trim(stripslashes($_POST['fullname']));
$ep_input = trim(stripslashes($_POST['emailPhone']));
// Name validation
if (strlen($name) < 2) {
$error['name'] = "Invalid name";
}
// Email and phone number validation. first, the email...
if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $ep_input)) {
$error['email'] = "invalid email address.";
}
// Now the phone (should be more accurate but we keep it simple for now...)
else if (!preg_match('/^[0-9]*$/', $ep_input) {
$error['phone'] = "invalid phone number.";
}
<?php
$ep=trim(stripslashes($_POST['emailPhone']));
if(is_numeric($ep))
{
if(!preg_match('/^\d{10}$/',$ep))
{
echo "invalid phone";
}
}
else
{
if (!filter_var($ep, FILTER_VALIDATE_EMAIL)) {
echo "Invalid email format";
}
}
?>
<input name="emailPhone" placeholder="email / phone" type="text" value="" required="">
<?php
$name = trim(stripslashes($_POST['fullname']));
$ep = trim(stripslashes($_POST['emailPhone']));
// Check phone number for 10 digits
if(is_numeric($ep))
{
if(!preg_match('/^\d{10}$/',$ep)) {
$error = "invalid phone number.";
}
$eptype = "phone";
}
// Check valid email format
else
{
if (!filter_var($ep, FILTER_VALIDATE_EMAIL)) {
$error = "invalid email address.";
}
$eptype = "email";
}
// Send the information via email with php or show the error
$mailto = "email@example.com";
$massage = "Please contact". $name ."via ". $eptype .": ". $ep;
if (!$error) {
$sendmail = mail($mailto, "Subject", $massage);
}
else {
echo $error;
}
?>