在Ajax中自动递增

时间:2018-09-04 16:34:36

标签: javascript php ajax

我正在创建一个门户,在该门户中,我根据数据库中的最后一个条目在输入字段中选择值。

例如

如果列return_no的最后一个值等于下次,则该值将自动为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 :(得分:1)

在我看来,您想要创建一个“下一步”类型按钮(如果该猜测是错误的,请更正...)

两种获得“高于先前”值的方法:

  1. (如评论中的@lhodonald所建议)在响应中使用javascript。

    int itemIndex = getIndex();
    getTableView().getItems().remove(itemIndex);
    
  2. 在mysql请求中执行

    $('#rno').val((parseInt(getResponse.rno) + 1));
    

同时也更改了输入.....

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