Авто приращение в Ajax - PullRequest
       2

Авто приращение в Ajax

0 голосов
/ 04 сентября 2018

Я создаю портал, в котором я выбираю значение в поле ввода на основе последней записи в базе данных.

Например

если последнее значение столбца return_no = 1, чем в следующий раз, оно автоматически примет 2 и т. Д.

Ниже мой код для большей ясности

HTML-код

<div class="form-group">
     <label class="control-label col-md-3 col-sm-3 col-xs-12">Client Name*</label>
     <div class="col-md-9 col-sm-9 col-xs-12">
     <?php
     $sql = "select vname from vendor";
     $stmt = $conn->prepare ( $sql );
     $result = $stmt->execute();
     ?>
     <select class="select2_single form-control" tabindex="-1" name="vname" id="vname" onChange="getinfo(this.value)" required>
        <option value=""></option>
        <?php
        foreach($stmt as $row){
        ?>
        <option value="<?php echo $row['vname'];?>"><?php echo $row['vname'];?></option>
        <?php
        }
        ?>
     </select>
     </div>
</div>

<div class="form-group">
     <label class="control-label col-md-3 col-sm-3 col-xs-12">Return No</label>
     <div class="col-md-9 col-sm-9 col-xs-12">
     <input type="number" class="form-control" placeholder="Return No" name="rno" id = "rno" required="required">
</div>

Сценарий

function getinfo(vname){
    var vname = $('#vname').val();
    //alert(sys_id);
    $.ajax({

        url:'information.php',
        type:"POST",    
        data:"name="+vname+"&type=vname",
        cache: false,
        success: function(response){
            var getResponse = $.parseJSON(response);
            console.log(getResponse);
            $('#rno').val(getResponse.rno); 
            $('#rperiod').val(getResponse.rperiod);
            $('#retdate').val(getResponse.retdate);
        }
    });
}

Information.php

<?php
session_start ();
include_once 'utils/DB.php';
include_once 'utils/config.php';
$name=($_POST['name']);
$type=($_POST['type']);

if($type=='vname')
{ 
    $name=($_POST['name']);
    $sql = "select rno, rperiod, single_cal2 from vatReturn 
            where vname='{$name}' ORDER BY vId DESC LIMIT 1";
    $stmt = $conn->prepare ( $sql );
    $result = $stmt->execute();
    $r = $stmt->fetch(PDO::FETCH_ASSOC);
    echo json_encode($r);
} 
?>

Теперь я хочу, чтобы предыдущее значение равнялось 1, тогда $ ('# rno'). Val (getResponse.rno); вернуть 2, если предыдущее значение равно 2, то $ ('# rno'). val (getResponse.rno); вернуть 3 и так далее

1 Ответ

0 голосов
/ 04 сентября 2018

Мне кажется, что вы хотите создать кнопку типа "Далее" (если это предположение неверно, пожалуйста, исправьте ...)

Два способа получить значение «выше, чем предыдущий»:

  1. (как @lhodonald предложил в комментариях) сделать это с помощью javascript в ответе.

    $('#rno').val((parseInt(getResponse.rno) + 1));
    
  2. сделать это в запросе mysql

     $sql = "select rno +1, rperiod, single_cal2 from vatReturn 
        where vname='{$name}' ORDER BY vId DESC LIMIT 1";
    

с изменением также и на вход .....

<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Client Name*</label>
<div class="col-md-9 col-sm-9 col-xs-12">
<?php
$sql = "select vname from vendor";
 // NEW LINE (selects the number that was sent in the form)     
$sql += !empty($_POST['rno']) && is_numeric($_POST['rno'])?" and rno={$_POST['rno']}":'';
$stmt = $conn->prepare ( $sql );
 $result = $stmt->execute();
 ?>
<select class="select2_single form-control" tabindex="-1" name="vname" id="vname" onChange="getinfo(this.value)" required>
<option value=""></option>
<?php
foreach($stmt as $row){
 ?>
<option value="<?php echo $row['vname'];?>"><?php echo $row['vname'];?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
     <label class="control-label col-md-3 col-sm-3 col-xs-12">Return No</label>
     <div class="col-md-9 col-sm-9 col-xs-12">
     <input type="number" class="form-control" placeholder="Return No" name="rno" id = "rno" required="required">
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...