gigahertz
Новичок
Дата регистрации:
29.10.2013 02:07:03
Сообщений: 12
Доброго времени суток. Не знаю как правильно сформулировать вопрос но попробую
есть цыкл в котором выводиться n-ное количество раз тег инпут со значением которое должно апдейтится с помощью кнопки.
$get_all= get_con_on_page($page);
for ($i=0; $i<count($get_all); $i++){
$id = $get_all["$i"]["id"];
$content = $get_all["$i"]["content"];
$list = $get_all["$i"]["list"];
?>
<input type="text" name="list" value="<? echo $list ?>"/></br>
<input type="button" value="изменить"/>
<div><?php echo $content ?></div>
<hr/>
<?php
}
?>
Как поймать измененное значение тега не используя форму. Ну или как использовать форму если <input type="text" и <input type="submit" находятся внутри цыкла. может быть вопрос глупый но...
tikkiwiki
Модератор
Дата регистрации:
15.11.2013 15:36:59
Сообщений: 194
Попробуйте использовать конструкцию switch и case для перебора элементов. Я не совсем, если честно понял Ваш вопрос, что Вы хотите?
gigahertz
Новичок
Дата регистрации:
29.10.2013 02:07:03
Сообщений: 12
В базе есть поле list которое по дефолту не имеет значения. В цыкле я перебераю масив (таблицу базы) и каждый раз в цыкле вывожу на экран значение поля list в тег <input type="text" /> после которого вывожу кнопку которая будет менять значение list на то что было записано в этот тег. Вопрос в том как поймать значение на которое надо заменить list и как поймать Id именно того list который был переписан если все это в цыкле.
tikkiwiki
Модератор
Дата регистрации:
15.11.2013 15:36:59
Сообщений: 194
Уважаемый gigahertz. К сожалению я не имею достаточно времени, чтобы разобраться в Вашей проблеме, но как оно появиться, я постараюсь Вам помочь.
Так же рекомендую к прочтению данную статью:
http://support.myrusakov.ru/article?id=11
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
так я попытался втыкнуть или как говорят либо я не втыкаю либо лыжи не едут.
Поидее когда вы перебираете базу(массив) вы его должны переберать через foreach, а там вы получаете строку row из которой мы достаем list и id. Добавьте в цикл помимо Inputa с текстом еще один input hidden и в него забивайте id.У вас получится повторение input text, input hidden и кнопка. И когда будет нажимать кнопку будете передавать 3 поля - кнопку, input text и hidden. Дальше я думаю догадались
Если не так понял - извините)
gigahertz
Новичок
Дата регистрации:
29.10.2013 02:07:03
Сообщений: 12
Спасибо =) но ксожалению я не понял как именно записать в post или get эти значения =)
<form name="" action="" method="post">
<input type="text" name="" value="<? echo $list ?>" /></br>
<input type="hidden" value="<? echo $id ?>"/>
<input type="submit" value="изменить"/>
</form>
эта форма находится внутри цыкла и я не знаю даже правильно ли это. Может надо через get передавать, а если через get то как, или делать 1 форму, а инпуты делать внутри цыкла?
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
Как вы перебираете базу в цикле?
gigahertz
Новичок
Дата регистрации:
29.10.2013 02:07:03
Сообщений: 12
Проблему решил но не полностью. Я в цыкле создаю несколько форм и action делаю на другой файл - обработчик который потом делает редирект. Но появился странный баг первый сабмит в цыкле передает данные в масив get, а остальные в post хотя в форме прописано method="post" и это 1 и таже форма просто с разными даными в input hidden.
<?php
$get_all= get_con_on_page($page);
for ($i=0; $i<count($get_all); $i++){
$id = $get_all["$i"]["id"];
$content = $get_all["$i"]["content"];
$list = $get_all["$i"]["list"];
?>
<form name="title_list_form" action="edit_title_list.php" method="post">
<input type="text" name="title_list" value="<? echo $list ?>" /></br>
<input type="hidden" name="hide_id" value="<? echo $id ?>" />
<input type="hidden" name="hide_page" value="<? echo $page ?>" />
<input type="submit" name="change_title_list" value="изменить"/>
</form>
<div><?php echo $content ?></div>
<?php
}
?>
// файл обработчик
<?php
require_once "../start.php";
if(isset($_POST["change_title_list"])){
print_r($_POST);
$all_is_ok = update_title_list($_POST["hide_page"], $_POST["title_list"], $_POST["hide_id"]);
if($all_is_ok){
?>
<script>
alert('norm');
</script>
<meta http-equiv="refresh" content="0; url=edit_content.php?page_name=<?php echo $_POST["hide_page"] ?>">
<?php
}
else {
?>
<script>alert('fail');</script>
<meta http-equiv="refresh" content="0; url=edit_content.php?page_name=<?php echo $_POST["hide_page"] ?>">
<?php
}
}
?>
ахаха аж стыдно оказывается я просто не закрыл тег форм =) ище раз спасибо за совет с hidden сейчас все работает отлично =)