[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив кнопок
RuLanceloT
Добрый день, мне нужна помощь (как начинающему).
Вот к примеру у меня есть цикл, который создает кнопки одного типа, но с разными именами, название которых name[]; Тогда получается каждая кнопка имеет свой номер. А вот и сам вопрос - Как можно отследить, какая кнопка(цифра) была задета и занести саму цифру в переменную?





Спустя 45 минут, 5 секунд (29.10.2011 - 13:39) johniek_comp написал(а):
код цикла дай

Спустя 15 минут, 36 секунд (29.10.2011 - 13:54) RuLanceloT написал(а):
while($grow = mysql_fetch_array($table))
{
$i++;
echo "<div class=div2><b>".$i.")</b></div>";
echo "<div class=div><b>|</b> ".$grow['name']." <b>|</b></div>";
echo "<div class=div2><i>".$grow['text']."</i></div>";
echo "<div class=div3><form method=post><input type=submit name=delete[$i] value=Delete></form></div>
echo "<br><hr>";
}

Спустя 1 час, 54 минуты, 57 секунд (29.10.2011 - 15:49) Игорь_Vasinsky написал(а):
Цитата
Как можно отследить, какая кнопка(цифра) была задета и занести саму цифру в переменную?


в обработчике напиши

echo '<pre>' . print_r($_POST, 1) . '</pre>';


там ты и у видешь какой элемент массива заносить в переменную.

Спустя 17 минут, 56 секунд (29.10.2011 - 16:07) RuLanceloT написал(а):
Игорь_Vasinsky, спасибо конечно, но не мог бы ты написать сам обработчик? :(
Ибо я, к сожалению, кроме
if (isset($_POST['...'])) {
...
}

никаких других не знаю((

Спустя 7 минут, 15 секунд (29.10.2011 - 16:14) Игорь_Vasinsky написал(а):
я так понял - тебе надо проверить нажата ли submit с именем name.$i - и потом запустить обработчик формы, так?

Спустя 14 минут, 37 секунд (29.10.2011 - 16:29) RuLanceloT написал(а):
Игорь_Vasinsky, угу wink.gif оно самое

Спустя 3 минуты, 12 секунд (29.10.2011 - 16:32) Игорь_Vasinsky написал(а):
Так не выдет.

даже если в цикле формировать динамически ключ массива - то нужно перебрать все ключи, а следовательно и подцепятся все кнопки.

Нужен другой способ.

Спустя 5 минут, 9 секунд (29.10.2011 - 16:37) RuLanceloT написал(а):
фак.. это плохо.. Ну попробую сам как нить решить по другому...

А такой вопросец - как сделать окошко на странице в который будет перезаписыватся текст постоянно (с самостоятельным обновлением, не затрагивающим всю страницу) и при его перезагрузки прокручивающийся вниз мгновенно? (аля чаты)

Спустя 42 секунды (29.10.2011 - 16:38) Winston написал(а):
AJAX

Спустя 2 минуты, 20 секунд (29.10.2011 - 16:40) RuLanceloT написал(а):
Хм, я так и думал что это будет AJAX.. Счас буду искать для нуба..

Спустя 3 минуты, 21 секунда (29.10.2011 - 16:44) Игорь_Vasinsky написал(а):
Смотри как вариант - можно не динамически индексы к именам кнопок формировать - а за ранее создать массив с именами

$name = array("register", "edit", "preview", search);


потом с switch->case

...
блин... мысль сломилась куда то... был алгоритм.... :D

Спустя 3 минуты, 31 секунда (29.10.2011 - 16:47) Winston написал(а):
Свернутый текст
while($grow = mysql_fetch_assoc($table))
{
$i++;
echo "<div class=div2><b>".$i.")</b></div>";
echo "<div class=div><b>|</b> ".$grow['name']." <b>|</b></div>";
echo "<div class=div2><i>".$grow['text']."</i></div>";
echo "<div class=div3><form method='post'><input type='submit' name='delete[$i]' value='Delete'></form></div>";
echo "<br><hr>";
}

if(isset($_POST['delete'][0]))
{
// Обработчик для первой кнопки
}
if(isset($_POST['delete'][1]))
{
// Обработчик для второй кнопки
}
if(isset($_POST['delete'][2]))
{
// Обработчик для третей кнопки
}
// ... и т.д.

Спустя 3 минуты, 47 секунд (29.10.2011 - 16:51) RuLanceloT написал(а):
Игорь_Vasinsky
Так смотри, эти кнопки создаются циклом и их могут быть тысячи...

Мне кажется можно создать цикл, типа > for ($i=0;$i<=$id;$i++) { }
и в самом цикле поставить > if (isset($_POST['$i'])) { }
тогда он проверит АБСОЛЮТНО все кнопки... Я не знаю как это будет грузить страницу, т.к. не разбираюсь в этом.. Но по моему работать должно..

Спустя 6 минут, 36 секунд (29.10.2011 - 16:58) Игорь_Vasinsky написал(а):
не не.. ты на странице обработчика ты же точно не знаешь ключ массива (имя кнопки) - по этому условие не сформировать - придётся обрабатывать всё так же в цикле - а значит - подцепятся все обработчики..


или я запутался.....

Спустя 2 минуты, 26 секунд (29.10.2011 - 17:00) Winston написал(а):
Цитата (Игорь_Vasinsky @ 29.10.2011 - 16:58)
ты же точно не знаешь ключ массива (имя кнопки

Знает он имя, это delete.
В цикле можно так пебирать
if(isset($_POST['delete'][$i]))

Спустя 49 секунд (29.10.2011 - 17:01) Игорь_Vasinsky написал(а):
Может... может... у мя щас к сожалению времени нет.. мог бы по эксперементировать.

да не.. юзай JQuery.form - тока ещё нужно будет id для формы сформировать, но это фигня - так же как с кнопами

и на JQ функцию написать


Спустя 5 минут, 45 секунд (29.10.2011 - 17:07) RuLanceloT написал(а):
Игорь_Vasinsky
я и говорю, обрабатывать все в цикле) wink.gif сча пробну...

Спустя 1 минута, 22 секунды (29.10.2011 - 17:08) RuLanceloT написал(а):
Игорь_Vasinsky, боже =) я таких слов даже не слышал еще)

Спустя 10 минут, 4 секунды (29.10.2011 - 17:18) Игорь_Vasinsky написал(а):
biggrin.gif тока я опять мысль потерял.....
http://jquery.malsup.com/form/

а... ну тут по id всё работать будет.... в функцию в качестве аргумента...

блин. я запутался в конец.

Спустя 1 минута, 19 секунд (29.10.2011 - 17:19) RuLanceloT написал(а):
Игорь_Vasinsky, ну могу сказать что циклом все работает)

Спустя 1 минута, 31 секунда (29.10.2011 - 17:21) RuLanceloT написал(а):
Игорь_Vasinsky, а то что ты скинул.. Что оно вообще делает? Не пойму)
Быстрый ответ:

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