【问题标题】:How to add textarea and dropdown to array value?如何将文本区域和下拉列表添加到数组值?
【发布时间】:2013-09-19 03:20:38
【问题描述】:

嗨!我想在我的数组中添加额外的 2 个 textarea 和一个下拉列表,它们将被插入到我的 mysql 数据库中。

我已经有一个文本区域:

  1. 姓名
  2. 用户名

我想补充一下

  1. 密码
  2. 姓氏
  3. 组(这是一个下拉列表,我将从我在 mysql 中的组表中获取数据)

这是我目前得到的:

<?php
require_once "connect_to_mysql.php"; 
if($_POST['name'] || $_POST['username'])
{

$array=$_POST['name'];
$array2=$_POST['username'];

foreach ($array as $i => $name) {
    $username = $array2[$i];


//$sql=mysql_query("insert into hobbies(hobby)values('$hobby')")

$sqlCommand = "INSERT INTO test(name, username) VALUES ('$name', '$username')";

$query = mysql_query($sqlCommand) or die (mysql_error());

}
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jquery Duplicate Fields Submit Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="reCopy.js"></script>
<script type="text/javascript">
$(function(){
  var removeLink = ' <a class="remove" href="#"    onclick="$(this).parent().slideUp(function(){ $(this).remove() }); return     false">remove</a>';
$('a.add').relCopy({ append: removeLink});  
});
</script>
<style type="text/css">
body{ font-family:Arial, Helvetica, sans-serif; font-size:13px; }
.remove {color:#cc0000}
.input{ border: solid 1px #006699; padding:3px}

</style>
</head>

<body>

<div style="background-color:#ffffcc; padding:4px; border:#333 1px solid">9lessons     programming Blog. Topics focused about jquery, ajax, mysql, php and java. <a     href="http://9lessons.info">http://9lessons.info</a></div>
   <form method="post" action="">
   <p class="clone"> <input type="text" name="name[]" class='input'/> 
     <input type="text" name="lastname[]" class='input' id="lastname[]"/> 
     <input type="text" name="username[]" class='input' id="username[]"/> 
     <input type="text" name="password[]" class='input' id="password[]"/>
   <?php
require_once "connect_to_mysql.php"; 
$part_id = $_SESSION['part_id'];
$query="SELECT * FROM groups WHERE part_id = '$part_id'";
$result = mysql_query($query);

echo '<select name="group" id="group">';
while($row=mysql_fetch_array($result)){ 
echo '<option value="' . $row['group'] . '">'. $row['group'] . '</option>';
}
echo '</select>'; 
?></p>
   <p><a href="#" class="add" rel=".clone">Add More</a></p>
   <input type="submit" value=" Submit " />
   </form>
</body>
</html>

【问题讨论】:

  • jonathan,我并没有真正明白你的问题。我从当前问题中得到的是,您的代码确实存在一些重大缺陷。 namelastnameusernamepassword 中的每一个都只有一个字段。您仍然使用数组在单个文本框中为每个字符串取一个字符串。从您的问题中甚至不清楚您的目的。请改进它。
  • 如果您必须通过 i/p 获取多个 name, lastname,username and password,该数组将很有用。所以在name, lastname,username and password使用数组 是没用的。不是吗???
  • 你想达到什么目的?从代码中退一步,用简单的英语告诉我们。
  • 大家好,嗯,我在这里取得的成就是我有一个来自 textarea= 名称、姓氏、用户名、密码和 1 个下拉列表的内容。还有一个功能,我可以在其中添加同一字段的另一行,以便我同时插入多个数据。截至目前,代码仅适用于姓名和用户名,我想包括密码、姓氏和流程中的下拉列表。我希望这会有所帮助。谢谢你的建议。

标签: php html arrays textarea


【解决方案1】:

乔纳森,不想冒犯,但我认为你正在处理一个只会让你陷入困境的样本。我也怀疑英语不是你的第一语言。

1) 仔细查看创建表单,然后响应其数据的示例。查看http://html.net/tutorials/php/lesson11.php 您将使用 post 方法来提交数据。

2) 接下来看看数据库设计,特别是第一个范式。看看你是否能找到一个例子来说明为什么这很重要。您需要了解如何创建表以支持“多对多”关系。 (提示,一个用户可以有多个爱好,他们可能有三个、五个或一个爱好。你如何在数据库中管理它?)我要求你这样做是因为当你了解如何使重复条目存储时正确地,您将准备好向您的用户询问适当的问题,以尽可能简单地获取您需要的数据。

3) 我希望您学习如何使用 PDO(php 数据对象)表示法进行数据库处理。它并不是那么困难,如果出现任何问题肯定会有所帮助。 PDO 的东西提供了更好的反馈。 http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

4) 您需要对安全性、登录和会话进行一些研究。

5) 你的标题“Jquery Duplicate Fields Submit Form”让我很困惑......如果有重复的东西,为什么必须提交?当我得到一个副本时,我通常把多余的扔掉。

6) 当我们讨论 jquery 的主题时,我还建议学习 try.jquery.com 教程。这将对您在 jquery 和 CSS 方面有很大帮助。您将学习如何隐藏和取消隐藏用户表单上的字段(因此您甚至不必使用该功能 removelink)显然如果用户看不到他们无法填写的字段。

我几乎宁愿看到你扔掉整个文件(我认为你是从其他地方复制的)并从头开始,然后沿着你当前的路径前进。

(左箭头,感叹号-- html cmets --> 和//php cmets 是您刚开始时的朋友。使用简单的 cmets 和逻辑结构设计您希望文件执行的操作做。然后返回并编码到您简单的英文描述。

我会告诉你,如果你在复制一些东西并且你有不止一两个你不理解的概念,那么你绝对会失败。最好花点时间,慢慢学习并了解正在发生的事情。

告诉我你才刚刚开始的事情。 整个 array / array2 的事情似乎没有意义。 如果您已经有一些来自用户的字段,并且想要填写更多,那么在表单页面上,让您的程序填写您已经知道的字段。请记住,在表单上隐藏项目非常容易。如果您想取消隐藏通过 javascript 很容易做到的事情

我会说,你当然有可能在你的东西之上,我的解释完全基于英文翻译的差异。在那种情况下,大量的道歉。我的回答无意冒犯。我希望看到您能够帮助自己并准确了解正在发生的事情。

祝你好运。

【讨论】:

  • tl;dr,但是 +1 表示您承诺写出大量答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
相关资源
最近更新 更多