0

我正在尝试改写我的问题。

我有一个可以返回数千条记录的数据表,每条记录都有多列。第一列中有一个复选框,一旦用户选中它,他们就会单击一个按钮,与该行关联的 CONTAINER_NUMBER 将被发送到模式窗口以在表单中使用。

这是复选框的代码:

 echo "<tr><td><input type=\"checkbox\" id=\"{$Row[CONTAINER_NUMBER]}\" name=\"checkMr[]\" /></td>";

这是检索 CONTAINER_NUMBER 并将其发送到模式窗口的 javascript:

   <script type="text/javascript">
   $(function()
   {
    $('a').click(function()
    {
        var selectedID = [];
        $(':checkbox[name="checkMr[]"]:checked').each(function()
        {               
            selectedID.push($(this).attr('id'))         
        });                                             
        $(".modal-body .containerNumber").val( selectedID );
       });
    });
    </script>

这是显示 CONTAINER_NUMBER 的模式窗口部分:

 <div class="modal-body">
   <form action="" method="POST" id="serviceModalForm" name="serviceModalForm">
   <input type="text" name="containerNumber" id="containerNumber" class="containerNumber">

这是 PHP 的部分,它采用 id="containerNumber" 并将其转换为 PHP 变量。之后,有一个 INSERT 语句将 containerNumber 插入到数据库表中:

 <?php
   $container = $_POST['containerNumber'];

   if(isset($_POST['submit'])){
     $container = mysql_real_escapse_string(stripslashes($container));

     $sql = "INSERT INTO myTable (container_num) VALUES ('$container')";

     if(mysql_query($sql)){
       echo "Insert complete";
     }
     else {
       echo "Insert was not completed";
     }
 ?>

这段代码很好。它运作良好。它做了它应该做的事情......当用户选中一个复选框时。当用户选中多个复选框时,它不起作用。

Basically, from what I've been researching is that I need to separate the records from the variable $container, as there can be multiple containers in that variable, which is why the query does not work when there are more than one container numbers selected .

我需要能够分离容器编号并将它们存储在数组或其他东西中。该查询将分别读取每条记录并为每条记录生成多个 INSERT 语句。

我已经尝试过几次创建一个数组并让 sql 语句识别它,但都没有成功。我不确定我是否将阵列放置在正确的位置。我不确定这是否必须在容器被发送到模式窗口之前在 javascript 中完成。

我知道我需要使用 FOREACH 循环来遍历数组,但就像我说的,我不确定数组需要在我的代码中的什么位置。

请帮忙。我知道我需要学习 PDO 或 MYSQLI。我一定会在我的下一个应用程序中使用 PDO 或 MYSQLI。在那之前,请帮我解决这个问题。

谢谢你,很抱歉这么多措辞。

4

1 回答 1

1

您的 containerNumber 将作为 js 数组的转换字符串发布。像 id1, id2, id3[...]

在您的 php 代码中,将 $container 转换回数组 ( $containerArray = explode(",", $container)) 并动态构造 sql 以在单个查询中添加所有行,以便语句变为类似

INSERT INTO myTable (container_num) VALUES ('$containerArray[0]'), ('$containerArray[1]')[...]
于 2013-11-12T18:40:52.753 回答