Автоматическая форма, заполненная PHP Ajax - PullRequest
0 голосов
/ 06 октября 2019

У меня есть два текстовых поля, а именно no_id и customer_name. когда пользователь вводит no_id, имя_пользователя заполняется автоматически.

Форма

<form>
  <input type="text" name="no_id" onkeyup="autofill()" id="no_id">
  <input type="text" name="customer_name" id="customer_name" readonly>
  <!--textbox customer_name is readonly-->
</form>

Javascript

<script type="text/javascript">
function autofill(){
  var no_id = $("#no_id").val();
  $.ajax({
    url: 'ajax.php',
    data:"no_id="+no_id ,
  }).success(function (data) {
    var json = data,
    obj = JSON.parse(json);
    $('#customer_name').val(obj.customer_name);
  });
}
</script>

ajax.php

include 'conn.php';
$npwp = $_GET['no_id'];
$query = mysqli_query($conn, "select * from ms where no_id='$no_id'");
$ms = mysqli_fetch_array($query);
$data = array(
            'customer_name'      =>  $ms['customer_name']);
echo json_encode($data);

Скрипты выше работают для меня.

Теперь я хочу изменить его. Когда введенный no_id является НЕ , сохраненным в базе данных, атрибут поля customer_name становится readonly = false , поэтому пользователь может заполнить поле customer_name.

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Здесь я считаю rows в mysql, и если строки == 0, то удаляя атрибут readonly

Javascript

<script type="text/javascript">
    function autofill(){
        var no_id = $("#no_id").val();
        $.ajax({
            url: 'ajax.php',
            data:"no_id="+no_id ,
            success : function (data) {
                var json = data;
                obj = JSON.parse(json);
                    if(obj.success=='true') {
                    $('#customer_name').val(obj.customer_name).attr("readonly", true);
                } else {
                    $('#customer_name').val("").attr("readonly", false);
                }
            }
        })
    }
</script>

AJAX.php

include 'conn.php';
$npwp = $_GET['no_id'];
$query = mysqli_query($conn, "select * from ms where no_id='$npwp'");
if(mysqli_num_rows($query) >= 1 ) {
    $ms = mysqli_fetch_array($query);
    $data = array('customer_name' =>  $ms['customer_name'], 'success'=>'true');
    echo json_encode($data); 
} else {
    $data = array('success'=>'false');
    echo json_encode($data);
}
0 голосов
/ 06 октября 2019

Вы можете использовать метод jquery onChange для ввода no_id, чтобы отправить no_id значение и найти его в базе данных или нет, а также вернуть true или false (0 или 1), как этот код:

$('#no_id')onchange(function(){
var no_id = $(this).val();

$.ajax({
    url: 'ajax.php',
    data:"no_id="+no_id ,
  }).success(function (data) {
    if(data == true){
        $('#customer_name').attr('readonly');
    }else if(data == false){
        $('#customer_name').removeAttr('readonly');
    }
  });

});

Я предпочитаю создать другую функцию для no_id метода onChange

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...