【发布时间】:2013-11-13 02:40:52
【问题描述】:
我正在尝试改写我的问题。
我有一个可以返回数千条记录的数据表,每条记录都有多列。第一列中有一个复选框,一旦用户选中它,他们然后单击一个按钮,与该行关联的 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";
}
?>
这段代码很好。它运作良好。它做了它应该做的事情......当用户选中一个复选框时。当用户选中多个复选框时,它不起作用。
基本上,从我一直在研究的情况来看,我需要将记录与变量 $container 分开,因为该变量中可以有多个容器,这就是为什么当有多个容器时查询不起作用的原因已选择容器编号。
我需要能够分离容器编号并将它们存储在数组或其他东西中。该查询将分别读取每条记录,并为每条记录生成多个 INSERT 语句。
我尝试了几次创建一个数组并让sql语句识别它,但都没有成功。我不确定我是否将阵列放置在正确的位置。我不确定在将容器发送到模式窗口之前是否必须在 javascript 中完成此操作。
我知道我需要使用 FOREACH 循环来遍历数组,但就像我说的,我不确定数组需要在我的代码中的什么位置。
请帮忙。我知道我需要学习 PDO 或 MYSQLI。我一定会在我的下一个应用程序中使用 PDO 或 MYSQLI。在那之前,请帮我解决这个问题。
谢谢你,抱歉用了这么多措辞。
【问题讨论】:
-
请张贴您的 HTML 表单,因为它是在浏览器中输出的。并同时发布
$_POST['containerNumber']的内容。这将有助于我澄清这个问题。 -
我不确定你要我做什么。总而言之,在 PHP 代码中,$container 可以分配有多个容器编号。所以目前,插入语句将 $container 视为字符串或其他内容。像这样: $container = ct1, ct2, ct3... 每个分配给 $container 的记录应该有多个插入。我希望我的措辞正确。
标签: javascript php mysql variables insert