添加行和运行多个mySQL查询

时间:2016-05-03 20:58:57

标签: javascript php mysql mysqli

我试图找出解决这个问题的最佳方法..我需要能够使用JS将输入字段附加到表行,以便可以使用相同的表单输入多个项目,但我需要以某种方式制作每个输入都有一个用PHP定位的唯一名称。从那里我需要在每个插入到mySQL数据库中运行一个插入语句..我有点难过这里

=============================================== =======================

   <form action="" method="post" id="myForm">
        <table class="addTable">
            <tr>
                <th>Title</th>
                <th>Type</th>
                <th>Quantity</th>
                <th>Customer Price</th>
            </tr>
            <tr>
                <td>
                    <input type="text" name="name" placeholder="Title" maxlength="60" value="<?php echo $_POST['name']; ?>">
                </td>
                <td>
                    <input type="text" name="type" placeholder="Type" maxlength="20" value="<?php echo $_POST['type']; ?>">
                </td>
                <td>
                    <input type="number" name="qty" placeholder="QTY" max="100" value="<?php echo $_POST['qty']; ?>">
                </td>
                <td>
                    <input type="text" name="price" placeholder="Price" value="<?php echo $_POST['price']; ?>">
                </td>
            </tr>
        </table>
    </form>

1 个答案:

答案 0 :(得分:0)

您可以使用数组作为名称,例如:

   <form action="" method="post" id="myForm">
        <table class="addTable">
            <tr>
                <th>Title</th>
                <th>Type</th>
                <th>Quantity</th>
                <th>Customer Price</th>
            </tr>
            <tr>
                <td>
                    <input type="text" name="name[]" placeholder="Title" maxlength="60" value="<?php echo $_POST['name']; ?>">
                </td>
                <td>
                    <input type="text" name="type[]" placeholder="Type" maxlength="20" value="<?php echo $_POST['type']; ?>">
                </td>
                <td>
                    <input type="number" name="qty[]" placeholder="QTY" max="100" value="<?php echo $_POST['qty']; ?>">
                </td>
                <td>
                    <input type="text" name="price[]" placeholder="Price" value="<?php echo $_POST['price']; ?>">
                </td>
            </tr>
        </table>
    </form>

然后你可以使用类似的东西:

<?php
for($i = 0; $i < count($_POST['name']; $i++) {
  $name = $_POST['name'][$i];
  $type = $_POST['type'][$i];
  $qty = $_POST['qty'][$i];
  $price = $_POST['price'][$i];
  // make your query here
}

另外一个小建议:在你的html代码中不要直接回显$ _POST值,首先检查它们是否存在,e。 G。 <?= isset($_POST['price'])?$_POST['price']:""?>

<?=<?php echo

的快捷方式

isset($_POST['price'])?$_POST['price']:""部分是if-else声明的快捷方式。 (它被称为ternary operator

这意味着与此相同:

if(isset($_POST['price'])) {
  echo $_POST['price'];
} else {
  echo "";
}

isset()本身检查变量(或本例中的数组键)是否存在。

编辑:更新了有关附加的信息

如果你可以使用jQuery,那很简单。如果您不使用它,请开始使用它:)

<script>
$(document).ready(function() {
  $('.some-class-of-your-button').click(function() {
    $('.addTable').append($('.addTable tr:nth-child(2)').clone());
    $('.addTable tr:last-child input').val("");
  });
});
</script>

some-class-of-your-button替换为您的按钮所具有的类。该按钮必须位于表格之外才能使用。