首页 > 解决方案 > 验证ajax,如果数据不存在禁用提交按钮

问题描述

我有自动完成 ajax,如果数据不存在,我想实现,然后提交按钮将被禁用,如果数据存在并成功输入到表单,则启用按钮。

如何做到这一点?我对ajax真的很陌生

    <script type="text/javascript">
      function validate(){
          var id = $("#id").val();
          $.ajax({
              type: 'get',
              url: 'ajax.php',
              data:"id="+id ,
          }).success(function (data) {
              var json = data,
              obj = JSON.parse(json);
              $('#nama').val(obj.nama);
              $('#golongan').val(obj.golongan);
              $('#divisi').val(obj.divisi);
          });
      }
    </script>

形式

<div class="form-group">
              <label for="id">ID karyawan</label>
              <input type="number" class="form-control" name="id" id="id" onkeyup="validate()" aria-describedby="id" required>
            </div>
            <div class="form-group">
              <label for="nama">Nama Karyawan</label>
              <input type="text" class="form-control readonly" name="nama" id="nama" readonly required>
            </div>
            <div class="form-group">
              <label for="golongan">Golongan</label>
              <input type="text" class="form-control" name="golongan" id="golongan" readonly required>
            </div>
            <div class="form-group">
              <label for="divisi">Divisi</label>
              <input type="text" class="form-control" name="divisi" id="divisi" readonly required>
            </div>

ajax.php

<?php
include_once "config.php";

$id = $_GET['id'];

$query = mysqli_query($koneksi, "SELECT user.id,user.nama,user.divisi,user.golongan 
                                 FROM user
                                 WHERE id='$id'");
$result = mysqli_fetch_array($query);
$data=mysqli_fetch_assoc($query);
$data = array(
            'nama'=>$result['nama'],
            'golongan'=>$result['golongan'],
            'divisi'=>$result['divisi'],);

echo json_encode($data);
?>

上面的代码是由数据库中的 id 自动完成的,如果 id 已注册,则表单会自动填写,而 id 以外的表单有readonlytextarea 元素

感谢之前,感谢任何帮助

标签: phpajax

解决方案


ajax.php

<?php
$conn = new mysqli($servername, $username, $password, $dbname);

$id = $_GET['id'];
$query = $conn->prepare("SELECT id,nama,divisi,golongan FROM user WHERE id = ? ");
$query->bind_param("i", $id);
$query->execute();
$result = $query->get_result();
$row = $result->fetch_array();
if(count($row)) 
{
    $data = array(
                'nama'=>$row['nama'],
                'golongan'=>$row['golongan'],
                'divisi'=>$row['divisi'],
                );
}else{
    $data = array(
                'nama'=> 'error'
                );
}

echo json_encode($data);
?>

阿贾克斯请求

<script type="text/javascript">
  function validate(){
      var id = $("#id").val();
      $.ajax({
          type: 'get',
          url: 'ajax.php',
          data:"id="+id ,
      }).success(function (data) {
          var json = data,
          obj = JSON.parse(json);
          if(obj['nama'] !== "error"){
              $('#nama').val(obj['nama']);
              $('#golongan').val(obj['golongan']);
              $('#divisi').val(obj['divisi']);
              // default disabled this input after success input enabled 
              $( "#input_id" ).prop( "disabled", false );
          }
      });
  }
</script>

推荐阅读