使用jquery和php验证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

我有一个带有表单的简单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">
    </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代码。如果你不介意的话,你可以检查一下吗。谢谢