实时验证在表格中添加/更新数据php,ajax,javascript

时间:2017-03-19 06:28:36

标签: javascript php mysql ajax mysqli

可以帮我解决这个问题吗?

我有一张桌子,我添加了2个按钮来添加或更新信息。

我想在“描述”字段中进行验证,其中**只能写字母且少于255个字符,而在"name"字段中,您只能写少于50个字符。无论如何,我无法分别点击“保存”或“添加”按钮(按钮被锁定,直到一切正常)。

此外,页面必须显示“实时(在点击按钮之前)每个字段中的错误”。

这是我的代码,在表格中添加新信息时:

<?php include('connect.php'); 
    $error="";

    if(isset($_POST['btnsave']))
    {
        $career_id=$_POST['carrera'];
        $name=$_POST['txtname'];
        $description=$_POST['txtdescription'];
        $hourss=$_POST['txthours'];

        if($_POST['txtid']=="0")
        {
            $a_sql=mysql_query("INSERT INTO subjects VALUES('','$career_id','$name','$description','$hourss')");
            if($a_sql)
            {
                header("location:index.php");//
            }
        }else{
            echo "Update";
        }
    }

    $sqlm = mysql_query("SELECT * FROM careers");
    $options = "";
    while($result = mysql_fetch_array($sqlm)){
            $options .= "<option value='".$result['id']."'>".$result['name']."</option>";
    }
?>

    <h2 align="center">ADD NEW SUBJECT</h2>
    <form method="Post">
        <table align="center">
                <tr>    
                    <td>Career:</td>
                    <td><select name='carrera'><?php echo $options; ?></select><input type="hidden" name="txtid" value="0" /></td>
                </tr>
                <tr>    
                    <td>Name:</td>
                    <td><input type='text' name='txtname'/></td>
                </tr>
                <tr>    
                    <td>Description:</td>
                    <td><input type='text' name='txtdesription'/></td>
                </tr>
                <tr>    
                    <td>Hours:</td>
                    <td>
                        <select name='txthours'/>
                            <option <?php if($hourss=='1') echo 'selected' ; ?> value="2">2 (two)</option>
                            <option <?php if($hourss=='1') echo 'selected' ; ?> value="4">4 (our)</option>
                            <option <?php if($hourss=='1') echo 'selected' ; ?> value="6">6 (six)</option>
                            <option <?php if($hourss=='1') echo 'selected' ; ?> value="8">8 (eight)</option>
                            <option <?php if($hourss=='1') echo 'selected' ; ?> value="10">10 (ten)</option>
                        </select>
                    </td>
                </tr>
                <tr>    
                    <td></td>
                    <td><input type='submit' value=save name='btnsave'/></td>
                </tr>
        </table>
    </form>

另一个代码更新表中的信息:

<?php include('connect.php'); 
    $error="";
    if(isset($_GET['edit']))
    {
        $ident=$_GET['iden'];
        $row=mysql_query("SELECT * FROM subjects WHERE id=$ident");
        $st_row=mysql_fetch_array($row);
    }
?>

    <h2 align="center">UPDATE SUBJECT</h2>
    <form method="Post" action=''>
        <table align="center">
            <tr>    
                <td>Career:</td>
                <td><input type='text' name='txtcarreras_id' value="<?PHP echo $st_row['career'] ?>"/></td>
                </tr>
            <tr>    
                <td>Name:</td>
                <td><input type='text' name='txtnombre' value="<?PHP echo $st_row['name'] ?>"/></td>
            </tr>
            <tr>    
                <td>Description:</td>
                <td><input type='text' name='txtdescripcion' value="<?PHP echo $st_row['description'] ?>"/></td>
            </tr>
            <tr>    
                <td>Hours:</td>
                <td><input type='text' name='txtcarga_horaria' value="<?PHP echo $st_row['hours'] ?>"/></td>
            </tr>
            <tr>    
                <td></td>
                <td><input type='submit' value="save" name='btnsave'/></td>
            </tr>
        </table>
    </form>

<?php
    if(isset($_POST['btnsave']))
    {
        $career_id=$_POST['txtcarreras_id'];
        $name=$_POST['txtnombre'];
        $description=$_POST['txtdescripcion'];
        $hours=$_POST['txtcarga_horaria'];

        $a_sql=mysql_query("UPDATE materias SET career='$career_id', name='$name', description='$description', hours='$hours' WHERE id='$ident'");
            if($a_sql)
            {
                header("location:index.php");
            }
        }
?>

我知道,有很多方法可以解决这个问题,但我想要最好的方法!

希望你能帮助我:)。

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以使用Javascript来做到这一点。使用Jquery或其他库,它更容易。

使用jQuery:

$('input[name=txtname]').keyup(function() {
  if ($(this).val().length < 50) {
    // Do Error stuff here
  } else {
    // Remove error stuff here
  }
});

如果你有jQuery并使用上面的keyup事件处理程序,它应该在你输入时显示。