Как добавить текстовое поле и раскрывающийся список к значению массива?

0

Здравствуй! Я хотел бы добавить еще 2 textarea и выпадающий список к моему массиву, который будет вставлен в мою базу данных mysql.

У меня уже есть текстовое поле для:

  1. имя
  2. имя пользователя

и я хотел бы добавить

  1. пароль
  2. Фамилия
  3. group (это выпадающий список, и я получаю данные из таблицы моих групп в 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>
Теги:
arrays
textarea

1 ответ

1

Джонатан, Не пытаясь быть оскорбительным, но я думаю, что вы работаете над образцом, который просто путает вас. Я также подозреваю, что английский не является вашим первым языком.

1) внимательно посмотрите на пример создания формы, затем ответьте на ее данные. Посмотрите http://html.net/tutorials/php/lesson11.php. Вы будете использовать метод отправки для отправленных данных.

2) Затем взгляните на дизайн базы данных, особенно первую нормальную форму. Посмотрите, можете ли вы найти пример того, почему это важно. Вам нужно понять, как создать таблицу для поддержки отношений "многие-многие". (Подсказка: у одного пользователя может быть несколько хобби, у них может быть три или пять или только одно хобби. Как вы справляетесь с этим в базе данных?) Я прошу вас сделать это, потому что, когда вы понимаете, как хранить дубликаты записей правильно, вы будете готовы задать своим пользователям соответствующие вопросы для получения необходимых данных, насколько это возможно.

3) Я хочу, чтобы вы научились использовать нотацию PDO (php data object) для обработки базы данных. Это не все, что сложно, и определенно поможет, если возникнут какие-либо проблемы. Материал 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. Вы узнаете, как скрывать и отображать поля в пользовательской форме (так что вам не нужно даже использовать эту функцию removeelink). Очевидно, если пользователь не может видеть поле, он не может его заполнить.

Я почти предпочел бы, чтобы вы загрузили весь файл (который, я думаю, вы скопировали из другого места), и начинайте с нуля, затем переходите по тому пути, в котором вы сейчас находитесь.

(Левая стрелка, восклицание point-- html comments → и //php comments - ваши друзья при первом запуске. Создайте то, что вы хотите, чтобы файлы делали с помощью простых комментариев и логической структуры на том, что вы хотите, чтобы ваш файл делал. вернитесь и введите код в свои простые английские описания.

Я скажу вам, что если вы что-то копируете, и у вас есть более одного или двух понятий, которые вы не понимаете, вы полностью потерпите неудачу. Лучше не торопитесь, учитесь медленно и понимайте, что происходит.

Вещи, которые говорят мне, что вы только начинаете. Вся вещь array/array2 кажется бессмысленной. Если у вас уже есть поля от пользователей, и вы хотите заполнить их больше, то на странице формы запустите свою программу, заполнив поля, которые вы уже знаете. Помните, что довольно легко иметь элементы в скрытой форме. Если вы хотите показать что-то, что довольно легко сделать с помощью javascript

Я скажу, что, безусловно, возможно, что вы на вершине своих вещей, и моя интерпретация основана исключительно на различиях на английском языке. В этом случае обильные извинения. С моим ответом не должно быть правонарушений. Я хотел бы, чтобы вы смогли помочь себе и точно понять, что происходит.

Удачи вам.

  • 0
    tl; dr, но +1 за вашу приверженность написанию такого объемного ответа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню