如何生成多个文本框然后插入数据库

Posted

技术标签:

【中文标题】如何生成多个文本框然后插入数据库【英文标题】:How to generate multiple text box then insert in database 【发布时间】:2015-03-29 09:01:48 【问题描述】:

我的系统有问题。我需要将文本框相乘,然后在 mysql 中使用串联插入一列。我在我的系统中使用 php。具体来说,我的源代码是 ff:

这是索引

    <html>
    <head>
    <title>Sample Text</title>
    </head>
    <body>

    <form action="phpfunctionshandle.php" method="post" name="phpfunctionshandle"> 

        <input type="number" name="text" />
        <button type="submit" name="submit"value="Register">Submit</button>
        <button type="reset"value="cancel">Cancel</button>
        <input type="hidden" name="submitted" value="TRUE" >
    </form>
    </body>
    </html>

这是索引的句柄

<html>
<head>
<title>Sample</title>
</head>
<body>
<form action="handlefinal" method="post" enctype="multipart/form-data" name="phpfunctionshandle"> 
<?php
include('config.php');
$text =$_POST['text'];
for ($x = 1; $x <= $text; $x++)  // I use for loop to multiple text box
    echo '<input type="text" name="sample value=""/>';


?>
 <button type="submit" name="submit"value="Register" class="btn btn-primary">Submit</button>
 <button type="reset"value="cancel" class="btn btn-success">Cancel</button>
 <input type="hidden" name="submitted" value="TRUE" >
 </form>
 <Form name="handlefinal">
 <?php
include('config.php');
 $sample=$_POST['sample"'.$text.'"'];
$query = "INSERT INTO sample (text) VALUES ('$sample')"; 
$result = mysql_query($query) or die(mysql_error());
echo'success';

 ?>
</form> 
</body>
</html>

我使用 for 循环根据我在索引上输入的内容来多个文本框。比如我在index.php的输入类型号中输入3,文本框会乘以3。我想要的结果是查询3相乘的文本框。 如果我在第一个文本框中输入 sample1,在第二个文本框中输入 sample2,在第三个文本框中输入 sample3。列文本中所需的数据库输出应为 样品 1、样品 2、样品 3。我试试这个,但结果是文本框的最后一个值只插入到数据库中。总之只有sample3。我不知道如何查询以及如何解决这个问题。有什么建议么?很抱歉发布我所有的源代码。感谢您的耐心等待。

【问题讨论】:

您在此处缺少引用 "echo '&lt;input type="text" name="sample value=""/&gt;';。应该是echo '&lt;input type="text" name="sample" value=""/&gt;'; 【参考方案1】:

这里有几个问题:

您为所有输入赋予相同的名称,因此只有最后一个的值会传递到服务器。您可以使用表单中的数组来解决此问题,该数组将转换为 $_POST 变量的数组:echo '&lt;input type="text" name="sample[]" /&gt;'; 我不喜欢将多个文本输入的输入放在一个数据库字段中,但如果必须,您可以在从表单获取值时连接它们:$samples = implode(',', $_POST['sample']); // separated by comma 如果您不发布任何文件,则不应使用enctype="multipart/form-data"。 您遇到了 sql 注入问题。您应该切换到另一个数据库接口,因为 mysql_* 函数已被弃用并使用准备好的语句。

【讨论】:

tnx 伙计们为您提供所有帮助,好的,我会再试一次

以上是关于如何生成多个文本框然后插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本框上键入的数据从模态插入数据库

如何将文本框中的日期插入数据库

在数据库中同时从文本框和 datagridview 插入

如何将选中的项目从checkedlistbox 插入SQL 数据库?

如何在 MS Access VBA 上将文本框注释值输入设置为表格数据插入

如何使用vb6.0将数据从文本框插入到sql表