如何更新动态 PHP 表的每一行

伊格

我正在尝试根据在该行最后一列中输入的“Amt”来更改每行的数量。这是一个基于区域# 的搜索表。本质上,我希望用户能够输入一个位置并将批量项目从当前区域移动到输入的新区域。如果 Amt 等于 0,则该行将被跳过并且不会发生更新。否则它会在数据库中用新数据创建一个新行。

链接到屏幕截图

https://photos.google.com/photo/AF1QipP2HMqNFmv208VOOl2DvppPGiZkv7f_keD_f8tj

这是我的 php 表代码:

country、region、location 和 placeid 的值存储在下拉列表中。

<?php

if (isset($_GET['Placeid'])) {
    $moveplace = $_GET['Placeid'];
    $sql = "SELECT *
        FROM Parts p, Locations l
        WHERE Placeid = '$moveplace' and p.locationid = l.locationid";

    $result = mysqli_query($conn, $sql);
    $queryResult = mysqli_num_rows($result);

    if ($queryResult > 0) {
        $i = 1;
        while ($row = mysqli_fetch_assoc($result)) {
            if ($i % 2 == 0) {
                $bgcolor = "rgba(199, 199, 199, 0.3)";
            } else {
                $bgcolor = "rgba(199, 199, 199, 0.8)";
            }

            echo "<div>
            <input type='hidden' value='".$row['id']."' name='hiddensearchid'>
            <input type='hidden' value='".$row['PartDescription']."' name='movedesc'>
            <input type='hidden' value='".$row['BrandName']."' name='moveBN'>
            <input type='hidden' value='".$row['CategoryName']."' name='moveCN'>
            <input type='hidden' value='".$row['NSN_number']."' name='moveNSN'>
            <input type='hidden' value='".$row['Image']."' name='moveimage'>
                <table class=searcht style='background-color:$bgcolor'>
                    <tbody>
                        <tr>
                            <td value='".$row['PartNum']."' name='movepart'>".$row['PartNum']."</td>
                            <td value='".$row['ModelNum']."' name='movemodelnum'>".$row['ModelNum']."</td>
                            <td>".$row['Country']."</td>
                            <td>".$row['Region']."</td>
                            <td>".$row['Location']."</td>
                            <td>".$row['Placeid']."</td>
                            <td style='width:100px' value='".$row['UnitNum']."' name='moveunitnum'>".$row['UnitNum']."</td>
                            <td style='width:50px;' value='".$row['QTY']."' name='moveqty'>".$row['QTY']."</td>
                            <th style='width:50px; border-right:none;'><input style='width:20px; text-align:center;' value='0' type=text name='moveamt'></th>
                        </tr>
                    </tbody>
                </table>
            </div>";
            $i++;
        }
        echo "<tr><td></td><td><input class='submit' type='submit' value='Confirm' name='submitPlacemove' onclick=\"return confirm ('Are you sure you want to submit?')\"></td></tr></form>";
    }
}

我想我需要使用某种 JavaScript,但我是新手。任何帮助表示赞赏。

西梅毒

我假设有一个Done按钮,当准备好扫描表以进行更改并更新数据库时,用户将按下按钮。

  1. 读取并存储表的当前值(在任何用户更改之前)

  2. 单击完成按钮后,逐行扫描表格并将存储的值与当前值进行比较

  3. 当发现变化时,将数据发送到一个 PHP 文件,该文件的工作是用新数据更新后端表(注意:您需要同时发送新数据和一个项目 ID,所以它知道放在哪里新数据)

这是一个非常粗略的、未经测试的、简单的代码示例:

var arr_old = [];
var arr_new = [];
$.each( $('table tr'), function(i, v){
  if (i==0) return true; //ignore header row (return true === continue)
  let currval = $(this).find('td:nth-child(3) index').val();
  arr_old.push(currval);
});

$('#btnDone').click(function(){
  $.each( $('table tr'), function(i, v){
    if (i==0) return true; //ignore header row (return true === continue)
    let row_id = $(this).find('td:nth-child(1)').text(); //1 or 2 or ...
    let newval = $(this).find('td:nth-child(3) index').val();
    if ( newval !== arr_old[i+1] ){
        $.ajax({
          type = 'post',
           url = 'path/to/your/php_file.php',
          data = 'item_id=' +row_id+ '&new_val=' +newval
        }).done(function(recd){
          console.log('Updated row ' + recd);
        });
    }
});
table{border-collapse:collapse;}
th,td{border:1px solid #ccc;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<table>
  <tr><th>ID</th><th>Col 1</th><th>Edit Col</th></tr>
  <tr><td>1</td><td>Summat</td><td><input class="bob" type="text" value="car" /></td></tr>
  <tr><td>2</td><td>Other</td><td><input class="bob" type="text" value="bike" /></td></tr>
  <tr><td>3</td><td>Summat</td><td><input class="bob" type="text" value="foot" /></td></tr>
</table>

<button id="btnDone">Done</button>

如果您不熟悉 javascript,我建议您使用 jQuery,原因如下


参考:

使用 jquery 和 ajax 更新列表

http://learn.jquery.com/about-jquery/how-jquery-works/

SLAKS jQuery 教程 - 使用右箭头显示下一位文本

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为显示 SQL 表行的 PHP/HTML 网页的每一行创建按钮或超链接?

来自分类Dev

如何在PHP中显示每一行的编号

来自分类Dev

如何遍历文件PHP中的每一行

来自分类Dev

如何在PHP中显示每一行的编号

来自分类Dev

用相应的值更新表的每一行

来自分类Dev

用PHP更新Google工作表的最后一行

来自分类Dev

如何拖放此表中的每一行?

来自分类Dev

PHP-使用下拉列表从动态列表的每一行捕获多个变量

来自分类Dev

PHP-在表格的每一行中动态插入带有javascript的innerhtml

来自分类Dev

如何获取动态更新的表的最后一行?

来自分类Dev

如何对html表的每一行和每一列的值求和

来自分类Dev

如何在PHP生成的内容的每一行中添加单独的onclick / EventListener函数?

来自分类Dev

如何添加链接以编辑和删除使用PHP制定的表格中的每一行

来自分类Dev

如何打开文件并将字符串放在php中每一行的末尾

来自分类Dev

如何迭代多维数组并计算PHP中每一行的总和?

来自分类Dev

如何在PHP MySQL中检查DATE和DATETIME的每一行?

来自分类Dev

如何使用javascript根据动态表的每一行中的输入值添加天数

来自分类Dev

如何为另一个表的每一行联接到表?

来自分类Dev

如何使用 PHP 为数据库中的每一行创建一个唯一的页面?

来自分类Dev

如何在运行时生成的 asp.net web 表的每一行中动态添加删除和更新按钮

来自分类Dev

MySQL更新300万行表中的每一行

来自分类Dev

如何基于包含表名的字符串从表中选择每一行?

来自分类Dev

MySQL循环每一行并更新

来自分类Dev

动态填充javaFx表视图中每一行的组合框列表

来自分类Dev

使用 AJAX 或 jQuery 为动态表中的每一行创建超链接

来自分类Dev

如何为mysql表的新列中的每一行生成唯一值?

来自分类Dev

如何在react-virtualized表的每一行的开头添加一个checbox?

来自分类Dev

连接2个表后如何为每一行选择一个值

来自分类Dev

如何为数据帧的每一行创建一个列联表

Related 相关文章

  1. 1

    如何为显示 SQL 表行的 PHP/HTML 网页的每一行创建按钮或超链接?

  2. 2

    如何在PHP中显示每一行的编号

  3. 3

    如何遍历文件PHP中的每一行

  4. 4

    如何在PHP中显示每一行的编号

  5. 5

    用相应的值更新表的每一行

  6. 6

    用PHP更新Google工作表的最后一行

  7. 7

    如何拖放此表中的每一行?

  8. 8

    PHP-使用下拉列表从动态列表的每一行捕获多个变量

  9. 9

    PHP-在表格的每一行中动态插入带有javascript的innerhtml

  10. 10

    如何获取动态更新的表的最后一行?

  11. 11

    如何对html表的每一行和每一列的值求和

  12. 12

    如何在PHP生成的内容的每一行中添加单独的onclick / EventListener函数?

  13. 13

    如何添加链接以编辑和删除使用PHP制定的表格中的每一行

  14. 14

    如何打开文件并将字符串放在php中每一行的末尾

  15. 15

    如何迭代多维数组并计算PHP中每一行的总和?

  16. 16

    如何在PHP MySQL中检查DATE和DATETIME的每一行?

  17. 17

    如何使用javascript根据动态表的每一行中的输入值添加天数

  18. 18

    如何为另一个表的每一行联接到表?

  19. 19

    如何使用 PHP 为数据库中的每一行创建一个唯一的页面?

  20. 20

    如何在运行时生成的 asp.net web 表的每一行中动态添加删除和更新按钮

  21. 21

    MySQL更新300万行表中的每一行

  22. 22

    如何基于包含表名的字符串从表中选择每一行?

  23. 23

    MySQL循环每一行并更新

  24. 24

    动态填充javaFx表视图中每一行的组合框列表

  25. 25

    使用 AJAX 或 jQuery 为动态表中的每一行创建超链接

  26. 26

    如何为mysql表的新列中的每一行生成唯一值?

  27. 27

    如何在react-virtualized表的每一行的开头添加一个checbox?

  28. 28

    连接2个表后如何为每一行选择一个值

  29. 29

    如何为数据帧的每一行创建一个列联表

热门标签

归档