[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма не отправляет данные
Jaiton
Есть цикл на php, который заполняет таблицу(<table>) данными из БД, при этом, каждая строка таблицы является формой с кнопками для вызова формы правки.

while ($row = mysql_fetch_assoc($all_users))
{
// по странной причине данные из обычных инпутов в этой
// форме не передавались - пришлось использовать hidden
// для передачи id
?>
<form action="users.php#bubble" method="POST">
<input type=hidden name="act" value="edit" />
<input type=hidden name="id" value=<?php echo $row['id']; ?> />
<input type=hidden name="option" value="edit" />
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['login']; ?></td>
<td><?php echo $row['permissions']; ?></td>
<?php echo edit_button(); ?>
<?php echo delete_button(); ?>
</tr>
</form>

<?php
}
[если вставить здесь, а потом закрыть форму эхом,
то вся форма не отправляет данные]


Если я размещаю кнопку добавления элемента в БД на отдельной форме, сразу за этими, то по какой-то причине эта вторая форма не отправляет данные. А если вставить кнопку(она вставляется функцией, ибо сначала проверяются условия для вставки) после цикла, то вся форма не передает данные. Вот кнопка.

function add_button()
{
if ($_SESSION['permissions'] == 1 or $_SESSION['permissions'] ==3 or
$_SESSION['permissions'] == 5 or $_SESSION['permissions'] ==7)
{
echo "<tr>
<td>


<input type='submit' name='button' class='buttonfield' value='добавить' form='users'>

</td>
</tr>
";
}
} // end of add_button


Причем, есть одна странность: если отправлять не постом, а гетом, то отправляются вообще все переменные со всех форм(строк)

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



Спустя 14 минут, 9 секунд (25.07.2012 - 19:14) kamanch написал(а):
Формам все равно в таблицах они или нет.
Смотри что у тебя в html'е, там и увидишь ошибку

Спустя 15 минут, 26 секунд (25.07.2012 - 19:29) inpost написал(а):
у тебя цикл и в нем ты каждый раз создаешь новую форму... Тебе именно это надо? Может ты хотел всев одну форму поместить???

Спустя 3 минуты, 59 секунд (25.07.2012 - 19:33) inpost написал(а):
форму нельзя открывать между тегами таблицы и тр... Это нераздельные теги... Тебе надо подучить хтмл, и не нарушая его понять действия циклов...

Спустя 44 минуты, 54 секунды (25.07.2012 - 20:18) Jaiton написал(а):

<html>

<head>

<meta
charset="utf-8" />

<script></script>

<link
href="css/form.css" rel="stylesheet" media="all" type="text/css" />

<link
rel="stylesheet" type="text/css" href="css/popup.css">

</head>

<body>

<div
id="border_users">

<div
id="wrapper_users">

<table
class="users" align="center">

<tr>

<th>
id</th>

<th>
Логин</th>

<th>
Разрешения</th>

</tr>

<form
action="users.php#bubble" method="POST" name="users">

<input
type=hidden name="act" value="edit" />

<input
type=hidden name="id" value=1 />

<input
type=hidden name="option" value="edit" />

<tr>

<td>
1</td>

<td>
main</td>

<td>
3</td>

<td
border='0px'><input type='submit' name='button'

class='buttonfield' value='править' width=40></td> <td border='0px'><input type='submit' name='button'

class='buttonfield' value='удалить' width=40></td> </tr>



</form>

<form
action="users.php#bubble" method="POST" name="users">

<input
type=hidden name="act" value="edit" />

<input
type=hidden name="id" value=28 />

<input
type=hidden name="option" value="edit" />

<tr>

<td>
28</td>

<td>
assssss</td>

<td>
0</td>

<td
border='0px'><input type='submit' name='button'

class='buttonfield' value='править' width=40></td> <td border='0px'><input type='submit' name='button'

class='buttonfield' value='удалить' width=40></td> </tr>



</form>

<form
action="users.php#bubble" method="POST" name="users">

<input
type=hidden name="act" value="edit" />

<input
type=hidden name="id" value=29 />

<input
type=hidden name="option" value="edit" />

<tr>

<td>
29</td>

<td>
qwerty32</td>

<td>
0</td>

<td
border='0px'><input type='submit' name='button'

class='buttonfield' value='править' width=40></td> <td border='0px'><input type='submit' name='button'

class='buttonfield' value='удалить' width=40></td> </tr>



</form>

<form
action="users.php#bubble" method="POST" name="users">

<input
type=hidden name="act" value="edit" />

<input
type=hidden name="id" value=15 />

<input
type=hidden name="option" value="edit" />

<tr>

<td>
15</td>

<td>
aguaga</td>

<td>
7</td>

<td
border='0px'><input type='submit' name='button'

class='buttonfield' value='править' width=40></td> <td border='0px'><input type='submit' name='button'

class='buttonfield' value='удалить' width=40></td> </tr>



</form>

<form
action="users.php#bubble" method="POST" name="users">

<input
type=hidden name="act" value="edit" />

<input
type=hidden name="id" value=16 />

<input
type=hidden name="option" value="edit" />

<tr>

<td>
16</td>

<td>
quarry</td>

<td>
5</td>

<td
border='0px'><input type='submit' name='button'

class='buttonfield' value='править' width=40></td> <td border='0px'><input type='submit' name='button'

class='buttonfield' value='удалить' width=40></td> </tr>



</form>

<form
action="users.php#bubble" method="POST" name="users">

<input
type=hidden name="act" value="edit" />

<input
type=hidden name="id" value=32 />

<input
type=hidden name="option" value="edit" />

<tr>

<td>
32</td>

<td>
zxczcx</td>

<td>
0</td>

<td
border='0px'><input type='submit' name='button'

class='buttonfield' value='править' width=40></td> <td border='0px'><input type='submit' name='button'

class='buttonfield' value='удалить' width=40></td> </tr>



</form>

<form
action="users.php#bubble" method="POST" name="users">

<input
type=hidden name="act" value="edit" />

<input
type=hidden name="id" value=33 />

<input
type=hidden name="option" value="edit" />

<tr>

<td>
33</td>

<td>
asasd</td>

<td>
0</td>

<td
border='0px'><input type='submit' name='button'

class='buttonfield' value='править' width=40></td> <td border='0px'><input type='submit' name='button'

class='buttonfield' value='удалить' width=40></td> </tr>



</form>

<tr>

<td>

<form
action='users.php?bubble' method='post'>

<input
type='hidden' name='act' value='edit' />

<input
type='hidden' name='option' value='edit' />

<input
type='submit' name='button' class='buttonfield' value='добавить'>

</form>

</td>

</tr>



</table>

</div>

</div>

<div
class="navigation">

<a
href="auth.php?logout">Выйти</a> </div>


Страница выходит вот такой. Да, я хотел именно много форм. Вот только все формы здесь работают кроме последней, которая выводится отдельной функцией. Наверно я не вижу здесь какой-то глупой ошибки, но мой html и правда плоховат.

Спустя 1 час, 31 минута, 35 секунд (25.07.2012 - 21:50) Jaiton написал(а):
*</body> и </html> просто не вставились в пост

Спустя 1 час, 35 минут, 20 секунд (25.07.2012 - 23:25) inpost написал(а):
я выше написал, что нельзя разрывать теги таблицы!!!
Пока ты не исправил код так, чтобы они не рвали таблицу...

Спустя 13 часов, 7 минут, 53 секунды (26.07.2012 - 12:33) Jaiton написал(а):
Я в самом первом посте писал, что мне это уже говорили и я пробовал убирать таблицу. Это не помогло. Еще писал, что с таблицей раньше тоже работало, но я так и не смог вернуть все назад, в рабочее состояние. Выходит дело в чем-то еще, кроме таблицы.

Спустя 1 час, 24 минуты, 46 секунд (26.07.2012 - 13:58) inpost написал(а):
я так понял ты тут самый умный и учить нас будешь в чем проблема тут... Ну-ну!
Я уже ответил, сделай полностью валидную верстку, тогда и поговорим. А пока тут ошибка именно в ней.


Спустя 27 минут, 17 секунд (26.07.2012 - 14:25) Jaiton написал(а):

<html>

<head>

<meta
charset="utf-8" />

<script></script>

<link
href="css/form.css" rel="stylesheet" media="all" type="text/css" />

<link
rel="stylesheet" type="text/css" href="css/popup.css">

</head>

<body>

<div
id="border_users">

<div
id="wrapper_users">
id
Логин
Разрешения
<form action="users.php#bubble" method="POST" name="users">
<input
type=hidden name="act" value="edit" />
<input
type=hidden name="id" value=1 />
<input
type=hidden name="option" value="edit" />
1
main
3
<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>
</form>

<form
action="users.php#bubble" method="POST" name="users">
<input
type=hidden name="act" value="edit" />
<input
type=hidden name="id" value=28 />
<input
type=hidden name="option" value="edit" />
28
assssss
0
<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>
</form>


<form
action="users.php#bubble" method="POST" name="users">
<input
type=hidden name="act" value="edit" />
<input
type=hidden name="id" value=29 />
<input
type=hidden name="option" value="edit" />
29
qwerty32
0
<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>
</form>

<form
action="users.php#bubble" method="POST" name="users">
<input
type=hidden name="act" value="edit" />
<input
type=hidden name="id" value=15 />
<input
type=hidden name="option" value="edit" />
15
aguaga
7
<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>
</form>

<form
action="users.php#bubble" method="POST" name="users">
<input
type=hidden name="act" value="edit" />
<input
type=hidden name="id" value=16 />
<input
type=hidden name="option" value="edit" />
16
quarry
5
<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>
</form>


<form
action="users.php#bubble" method="POST" name="users">
<input
type=hidden name="act" value="edit" />
<input
type=hidden name="id" value=32 />
<input
type=hidden name="option" value="edit" />
32
zxczcx
0
<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>
</form>


<form
action="users.php#bubble" method="POST" name="users">
<input
type=hidden name="act" value="edit" />
<input
type=hidden name="id" value=33 />
<input
type=hidden name="option" value="edit" />
33
asasd
0
<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>
</form>




<form
action='users.php?bubble' method='post'>
<input
type='hidden' name='act' value='edit' />
<input
type='hidden' name='option' value='edit' />
<input
type='submit' name='button' class='buttonfield' value='добавить'>
</form>

</div>

</div>

<div
class="navigation">

<a
href="auth.php?logout">Выйти</a> </div>

</body>

</html>



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

Спустя 6 минут, 15 секунд (26.07.2012 - 14:31) inpost написал(а):
я не верю, что в3ц и на что не ругается и у тебя валидная верстка, потомучто я даже сейчас вижу ошибки.
И второе, новый код я вижу, что не работает сейчас в нем?

Спустя 51 секунда (26.07.2012 - 14:32) sergeiss написал(а):
У тебя одинаковый name="users" у всех форм. Тебя это не смущает нисколько? :)

PS. Да не только у формы!!! У тебя много однотипных элементов с одинаковыми именами. А они должны быть уникальными.

PPS.
А вот это - вообще просто СУПЕР :) Я очень за твои формы порадовался ;)

<input type='submit' name='button' class='buttonfield' value='править' width=40>
<input
type='submit' name='button' class='buttonfield' value='удалить' width=40>

Спустя 4 минуты, 47 секунд (26.07.2012 - 14:37) Jaiton написал(а):
Это я уже экспериментировал) добавил совсем недавно, саму переменную я никак не использую.
З.Ы. с ней и без нее работает тоже одинаково.

Спустя 2 минуты, 7 секунд (26.07.2012 - 14:39) Jaiton написал(а):
А как же чекбоксы и радио переключатели? Их часто делают именно с одинаковыми именами и разными значениями. Да и к тому же эти формы с двумя кнопками прекрасно работают.

Спустя 2 минуты, 37 секунд (26.07.2012 - 14:42) Jaiton написал(а):
Не работает только самая последняя форма с кнопкой добавления. Блин, все ответы мои в кучу вышли - не понятно кому отвечаю. Там, где писал, что экспериментировал - это про name самих форм.

Спустя 13 минут, 39 секунд (26.07.2012 - 14:55) inpost написал(а):
мы много сказали, теперь исправь все. И еще - свойства атрибутов тегов необходимо писать в двойных кавычках. Плюс не работает - я не понимаю что именно. Кнопка не нажимается или данные не передаются... Исправь все и будем дальше разбираться!

Спустя 3 минуты, 26 секунд (26.07.2012 - 14:59) sergeiss написал(а):
Jaiton - я тебе в явном виде указал на твою ошибку, на то, что не надо делать разные элементы с одинаковым именем. Ты считаешь, что всё прекрасно работает. Так в чем вопрос, если "прекрасно работает"? Мы тебе не сможем помочь, ты и так лучше всё знаешь wink.gif

PS. И кнопка на добавление имеет то же самое имя, что и все остальные. Тебя в это надо "ткнуть носом" или ты сам догадаешься, что имя надо сделать уникальным для этой страницы?

Спустя 4 часа, 33 минуты, 37 секунд (26.07.2012 - 19:32) Jaiton написал(а):
Я написал все, что не работает и как это происходит в первом посте. Попросту POST, отправленный из этой формы - пуст(его содержимое выводится полностью в файле, на который отправляет данные форма. С остальных форм выводится все так, как и должно). Я изменил код так, чтобы все имена были уникальными и оставил старые(которые будут обрабатываться) только у той, которая не работает. Не изменилось ничего. Надеюсь на этом закончится неверие в то, что проблема еще в чем-то и повторюсь - это работало и с одинаковыми именами и с таблицей.

<html>

<head>

<meta
charset="utf-8" />

<script></script>

<link
href="css/form.css" rel="stylesheet" media="all" type="text/css" />

<link
rel="stylesheet" type="text/css" href="css/popup.css">

</head>

<body>

<div
id="border_users">

<div
id="wrapper_users">
id
Логин
Разрешения
<form action="users.php#bubble" method="POST" >
<input
type=hidden name="act1" value="edit" />
<input
type=hidden name="id1" value=1 />
<input
type=hidden name="option1" value="edit" />
1
main
3
<input type='submit' name='button1' class='buttonfield' value='править' width=40>
<input
type='submit' name='button2' class='buttonfield' value='удалить' width=40>
</form>

<form
action="users.php#bubble" method="POST" >
<input
type=hidden name="act2" value="edit" />
<input
type=hidden name="id2" value=28 />
<input
type=hidden name="option2" value="edit" />
28
assssss
0
<input type='submit' name='button3' class='buttonfield' value='править' width=40>
<input
type='submit' name='button4' class='buttonfield' value='удалить' width=40>
</form>


<form
action="users.php#bubble" method="POST" >
<input
type=hidden name="act3" value="edit" />
<input
type=hidden name="id3" value=29 />
<input
type=hidden name="option3" value="edit" />
29
qwerty32
0
<input type='submit' name='button5' class='buttonfield' value='править' width=40>
<input
type='submit' name='button6' class='buttonfield' value='удалить' width=40>
</form>

<form
action="users.php#bubble" method="POST" >
<input
type=hidden name="act4" value="edit" />
<input
type=hidden name="id4" value=15 />
<input
type=hidden name="option4" value="edit" />
15
aguaga
7
<input type='submit' name='button7' class='buttonfield' value='править' width=40>
<input
type='submit' name='button8' class='buttonfield' value='удалить' width=40>
</form>

<form
action="users.php#bubble" method="POST" >
<input
type=hidden name="act5" value="edit" />
<input
type=hidden name="id5" value=16 />
<input
type=hidden name="option5" value="edit" />
16
quarry
5
<input type='submit' name='button9' class='buttonfield' value='править' width=40>
<input
type='submit' name='button10' class='buttonfield' value='удалить' width=40>
</form>


<form
action="users.php#bubble" method="POST">
<input
type=hidden name="act6" value="edit" />
<input
type=hidden name="id6" value=32 />
<input
type=hidden name="option6" value="edit" />
32
zxczcx
0
<input type='submit' name='button11' class='buttonfield' value='править' width=40>
<input
type='submit' name='button12' class='buttonfield' value='удалить' width=40>
</form>


<form
action="users.php#bubble" method="POST" >
<input
type=hidden name="act7" value="edit" />
<input
type=hidden name="id7" value=33 />
<input
type=hidden name="option7" value="edit" />
33
asasd
0
<input type='submit' name='button13' class='buttonfield' value='править' width=40>
<input
type='submit' name='button14' class='buttonfield' value='удалить' width=40>
</form>




<form
action='users.php?bubble' method='POST'>
<input
type='hidden' name='act' value='edit' />
<input
type='hidden' name='option' value='edit' />
<input
type='submit' name='button' class='buttonfield' value='добавить'>
</form>

</div>

</div>

<div
class="navigation">

<a
href="auth.php?logout">Выйти</a> </div>

</body>

</html>

Спустя 13 часов, 12 минут, 47 секунд (27.07.2012 - 08:45) sergeiss написал(а):
ОК... Напиши в users.php одну строку:
exit('<pre>'.print_r( $_POST, true).'</pre>');

И покажи, что там будет при нажатии последней кнопки.

У меня твой код работает. С той разницей только, что я не знаю, как ты проверяешь, что ничего не происходит :) У меня - нужные данные приходят в скрипт.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.