我正在尝试改写我的问题。
我有一个可以返回数千条记录的数据表,每条记录都有多列。第一列中有一个复选框,一旦用户选中它,他们就会单击一个按钮,与该行关联的 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。在那之前,请帮我解决这个问题。
谢谢你,很抱歉这么多措辞。