简体   繁体   English

如何从foreach表中使用ajax获取另一个值

[英]how to get another value with ajax from foreach table

I have table from foreach, in this table i create submit with ajax (id="detail"), but why when i submit i just get first row, when i click second row value, i get first row value not second row value ?我有来自 foreach 的表,在这个表中我用 ajax 创建提交(id =“detail”),但是为什么当我提交时我只得到第一行,当我点击第二行值时,我得到第一行值而不是第二行值?

<form action="<?php echo base_url() ?>index.php/stock_opname/proses_detail" method="post">
        <table class="table table-striped">
            <thead>
            <tr>
                <th>No</th>
                <th>SO No</th>
                <th>Opname Date</th>
                <th>Warehouse</th>
                <th>Type</th>
                <th>Approve</th>
                <th>Close period</th>
                <th>Detail</th>
            </tr>
            </thead>
            <tbody>
            <?php $no=1; foreach ($show as $key) { ?>
            <tr>
                    <td><?php echo $no ?></td>
                    <td><input type="text" id="sono" value="<?php echo $key->sono ?>"></td>
                    <td><input type="text" id="opnamedate" value="<?php echo $key->opnamedate ?>"></td>
                    <td><input type="text" id="warehousecode" value="<?php echo $key->warehousecode ?>"></td>
                    <td><input type="text" id="stocktypeid" value="<?php echo $key->stocktypeid ?>"></td>
                    <td></td>
                    <td></td>
                    <td><a href="#" id="detail" class="btn btn-info">Detail</a></td>
            </tr>
            <?php $no++;} ?>
            </tbody>
        </table>
    </form>


<script type="text/javascript">
    //Ajax Load data from ajax
    $(document).on('click', '#detail', function(){

            var sono = $('#sono').val();
            var opnamedate = $('#opnamedate').val();
            var wh = $('#warehousecode').val();
            var stocktypeid = $('#stocktypeid').val();

            alert(sono);

        });

you have to make the id also dynamic and also the script sholud be dynamic.Hope you get it你必须使 id 也是动态的,脚本也应该是动态的。希望你能明白

id="detail1" id="详细信息1"

.on('click', '#detail1', function() ----for first .on('click', '#detail2', function() ----for second and so on .on('click', '#detail1', function() ----对于第一个 .on('click', '#detail2', function() ----对于第二个等等

Can you try this ?你能试试这个吗?

$('#detail').click(function(){
    var sono = $(this).siblings('#sono').val();
    var opnamedate = $(this).siblings('#opnamedate ').val();
    var wh = $(this).siblings('#wh').val();
    var stocktypeid = $(this).siblings('#stocktypeid ').val();

    alert(sono);
});
<form action="<?php echo base_url() ?>index.php/stock_opname/proses_detail" method="post">
    <table class="table table-striped">
        <thead>
        <tr>
            <th>No</th>
            <th>SO No</th>
            <th>Opname Date</th>
            <th>Warehouse</th>
            <th>Type</th>
            <th>Approve</th>
            <th>Close period</th>
            <th>Detail</th>
        </tr>
        </thead>
        <tbody>
        <?php $no=1; foreach ($show as $key) { ?>
        <tr>
                <td><?php echo $no ?></td>
                <td><input type="text" id="sono<?php echo $no; ?>" value="<?php echo $key->sono ?>"></td>
                <td><input type="text" id="opnamedate<?php echo $no; ?>" value="<?php echo $key->opnamedate ?>"></td>
                <td><input type="text" id="warehousecode<?php echo $no; ?>" value="<?php echo $key->warehousecode ?>"></td>
                <td><input type="text" id="stocktypeid<?php echo $no; ?>" value="<?php echo $key->stocktypeid ?>"></td>
                <td></td>
                <td></td>
                <td><a href="#" id="detail" onclick="getDetails(<?php echo $no; ?>)" class="btn btn-info">Detail</a></td>
        </tr>
        <?php $no++;} ?>
        </tbody>
    </table>
</form>


<script type="text/javascript"> //Ajax Load data from ajax
function getDetails(no){
    var sono = $('#sono'+no).val();
        var opnamedate = $('#opnamedate'+no).val();
        var wh = $('#warehousecode'+no).val();
        var stocktypeid = $('#stocktypeid'+no).val();
        alert(sono);}

hope this will help希望这会有所帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM