使用jquery和php验证HTML表单?
我有一个带有表单的简单HTML文件使用jquery和php验证HTML表单?,php,jquery,html,forms,Php,Jquery,Html,Forms,我有一个带有表单的简单HTML文件 <form action="register.php" method="get" id="submitform"> First Name: <input type="text" class="fb-input" name="fname" id="firstname" /> <br> <div class="fb-error"> </di
<form action="register.php" method="get" id="submitform">
First Name:
<input type="text" class="fb-input" name="fname" id="firstname" />
<br>
<div class="fb-error">
</div>
<input type="button" name="signupBtn" id ="sub" value="Sign upw">
</form>
然后在检查之后,它将被提交到php文件以进一步检查表单中输入的字符,如果发现无效字符,它将进行回音
我想要的是,我在php文件中提交页面后所做的检查将在jquery中传输。例如:
function register(){
var firstname=$("#firstname").val();
if(...){
<?php
if(preg_match(....)){....}
?>
}else{
.....
}
}
函数寄存器(){
var firstname=$(“#firstname”).val();
如果(…){
}否则{
.....
}
}
我试过了,但没用。我想我不能把php放在jquery中。我之所以想将php放在jquery中,是为了能够在HTML的div部分显示错误消息,因为一旦我提交页面,它就会转到另一个空白页面,在那里会显示php的错误消息
我所做的就像facebook的注册,一旦你提交了它并且输入了错误的字符,一条错误信息就会出现在底部。我们需要使用php,jquery只是可选的
有人能帮我吗?或者可以提出一个更好的方法
更新: Html代码:
<html>
<head>
<title>Facebook Registration</title>
</head>
<body>
<form action="register.php" method="get" id="submitform">
First Name:
<?php $fname = isset($_POST['fname']) ? $_POST['fname'] : ''; ?>
<input type="text" class="fb-input" name="fname" value="<?php echo $fname; ?>">
<br>
<div class="fb-error">
</div>
<input type="submit" name="signupBtn" id ="sub" value="Sign upw">
</form>
Facebook注册
名字:
您不能在js中使用php。使用js regexps或jq验证插件:您不能在js中使用php。使用jsregexps或jq验证插件:您需要创建一个php文件并编写验证,然后,您需要使用AJAX调用此页面,然后发送所需的参数
$.get("validation.php", { fieldname: "firstname", value: $("#firstname").val(); },
function(data){
if(data){
}
else{
}
});
validation.php
<?php
$fieldname = $_GET['fieldname'];
$fieldvalue = $_POST['value'];
if($fieldname == 'firstname'){
if(!preg_match('/^[a-zA-Z0-9]+$/', $fieldvalue)){
echo 'Notvalid';
}
}
if($fieldname == 'email'){
}
?>
您需要创建一个php文件并编写验证,然后,您需要使用AJAX调用此页面,然后发送所需的参数
$.get("validation.php", { fieldname: "firstname", value: $("#firstname").val(); },
function(data){
if(data){
}
else{
}
});
validation.php
<?php
$fieldname = $_GET['fieldname'];
$fieldvalue = $_POST['value'];
if($fieldname == 'firstname'){
if(!preg_match('/^[a-zA-Z0-9]+$/', $fieldvalue)){
echo 'Notvalid';
}
}
if($fieldname == 'email'){
}
?>
在PHP中可以做的事情很简单。可以在另一个页面的PHP脚本上验证表单,如果发现任何错误,可以使用$\u POST变量将表单重定向回
在你的表格上写上这样的东西
<?php $fname = isset($_GET['fname']) ? $_GET['fname'] : ''; ?>
<input type="text" class="fb-input" name="fname" value="<?php echo $fname; ?>">
在PHP中可以做的事情很简单。可以在另一个页面的PHP脚本上验证表单,如果发现任何错误,可以使用$\u POST变量将表单重定向回
在你的表格上写上这样的东西
<?php $fname = isset($_GET['fname']) ? $_GET['fname'] : ''; ?>
<input type="text" class="fb-input" name="fname" value="<?php echo $fname; ?>">
当PHP脚本检测到提交中的任何错误时,可以重定向用户以再次填写表单。您可以简单地在该表单中回显相关错误消息。您也可以在javascript中使用正则表达式。@Antony是否有可能在我重定向表单中的输入值时仍然保留?您也可以在表单中回显该值,如下所示:当PHP脚本检测到提交中的任何错误时,可以重定向用户以再次填写表单。您可以简单地在该表单中回显相关的错误消息。您也可以在javascript中使用正则表达式。@Antony是否可能在重定向时表单中的输入值仍将保留?您也可以在表单中回显该值,如下所示:谢谢。在重定向中,我使用header()函数。对吗?如果我回显表单,它是否与原始表单匹配?因为当我重定向时,没有传递值。您不能在重定向回时使用header()
,因为它不会发送任何数据。这是因为header()
必须位于页面顶部,因此不会进行任何处理。我在答案中用jQuery编写了重定向脚本,因此您可以使用它。但是有一个错误。它表示未定义的索引(然后是表单中输入的值)。它指向代码段中第二个回显的行。我将fname更改为$fname,但它没有解决问题。请尝试在if语句中使用var\u dump($\u POST)
,查看数组中是否设置了fname
。如果不是,则它可能不是从原始形式传播的。它不是在数组内部设置的。我在文章的下半部分发布了我正在做的当前html和php代码。如果你不介意的话,你可以检查一下吗。谢谢,谢谢。在重定向中,我使用header()函数。对吗?如果我回显表单,它是否与原始表单匹配?因为当我重定向时,没有传递值。您不能在重定向回时使用header()
,因为它不会发送任何数据。这是因为header()
必须位于页面顶部,因此不会进行任何处理。我在答案中用jQuery编写了重定向脚本,因此您可以使用它。但是有一个错误。它表示未定义的索引(然后是表单中输入的值)。它指向代码段中第二个回显的行。我将fname更改为$fname,但它没有解决问题。请尝试在if语句中使用var\u dump($\u POST)
,查看数组中是否设置了fname
。如果不是,则它可能不是从原始形式传播的。它不是在数组内部设置的。我在文章的下半部分发布了我正在做的当前html和php代码。如果你不介意的话,你可以检查一下吗。谢谢