Не могу понять каким образом форма типа checkbox передает обработчику переменные. Допустим пользователь отметил несколько галочек...Имя переменной одно, а значения разные. Мне , чтобы написать код необходимо разобраться каким же это образом. Если кому важно знать для чего мне это напишу: у меня выведено несколько форм типа text с введенными в них значениями, полученными из таблицы. мне необходимо удалить несколько записей (по выбору пользователя - свой выбор он помечает галочками). А потом при нажатии определнной кнопки эти записи должны удалиться.
и тогда обработчику передастся что-то типа передастся $ch[1]=значнение1 $ch[2]=значение 2 ...по порядку.... я правильно поняла?
это уже походит на флирт))) так я права или нет?и как определить сколько элементов в массиве этом всего получилось?
Сорока 1. ну ты же Питерская ... может встретимся как нить на проф. основе ... 2. права. PHP: <? $cnt = count($ch); // кол-во элементов if($cnt) { foreach($ch as $chk => $chv) { print("[$chk][$chv]<br />"); } } ?>
что-то у меня не работает.... может потому что я переменную mas не объявила глобыльной... Может посмотришь?Пожалуйста :roll: ... function func_2($x, $r) { ************* for($i=0;$i<$num;$i++) { $row=mysql_fetch_assoc($r); $mas[$i]=$row['number']; echo '<div style="position:absolute;top:'.$t.';left:87"> <input type=text size=20 value=" '.$row['number'].' " name=fnumber> <input type=checkbox name=ch[] value=mas[$i]></div>'; $t=$t+25; } *********** } if($button=="del_number") { $cnt=count($ch); for($k=0;$k<$cnt;$k++) { $r=mysql_query("select * from phone where number=' ".$ch[k]." ' "); $r2=mysql_fetch_assoc($r); echo $r2['number']; } } я использовала echo чтобы проверить работоспособность, а так на самом деле эти записи надо удалить
name="ch[]" и скорей всего надо использоать $_POST['del_number'] ну и так же на счет ch если форма передается POST или $_GET
$button=$HTTP_POST_VARS['button']; [440hz] не надо отсебятины. сделай как говорено ... адын-в-адын и внимательно прочти: http://manual.php.ru/language.variables.predefined.html http://manual.php.ru/function.import-re ... ables.html p.s. сорри. вместо ответа исправил оригинал. не хотел ...
<input type=checkbox name=ch[] value=mas[$i]></div>'; Это строка ведь означает, что ch[k-му] присваивается значение хранящееся в в элементе массива row? Так ведь?
можно написать и так: <input type=checkbox name=ch[$i] value=$mas[$i]> тогда в ch[$i] будет значение mas[$i]
$button=$HTTP_POST_VARS['button']; Это не отсебятина - у меня версия довольно старая и твоего синтаксиса она не понимает. И с этой строкой все работает. т.е. работает другая часть программы( то что показала тебе я лишь ее часть). между <input type=checkbox name=ch[$i] value=$mas[$i]> и <input type=checkbox name=ch[] value=$mas[$i]> нет совсем никакой разницы? Если да , то я тогда была не права в своих действиях.
Ну в моем случае разницы нет никакой , я думаю. Ты же видел мой код. У меня проблема в том как извлечь помеченные элементы. Пыталась их для пробы просто вывести на экран, но ничего не вывелось во втором варианте, а в первом выдало ошибку parse error(кстати не подскажешь как конкретно это переводится?). Первй и второй вариант я отметила комментариями. Я решила использовать все-таки $ch[$i]: for($i=0;$i<$num;$i++) { $row=mysql_fetch_assoc($r); $mas[$i]=$row['number']; echo '<div style="position:absolute;top:'.$t.';left:87"> <input type=text size=20 value=" '.$row['number'].' " name=fnumber> <input type=checkbox name=ch[$i] value=mas[$i]></div>'; $t=$t+25; } if($button=="del_number") { $cnt=count($ch); for($i=0;$i<$cnt;$i++) { /*if(ch[$i]) echo ch[$i];*/ /*$r=mysql_query("select * from phone where number=' ".$ch[$k]." ' "); $r2=mysql_fetch_assoc($r); echo $r2['number'];*/ }
посмотри phpinfo() и покажи как у тебя установлены register_globals? сдавется мне, что мы все вокруг этого танцуем
Сорока меняем <input type=checkbox name=ch[$i] value=mas[$i]></div>'; на <input type=checkbox name=ch['.$i.'] value='.$row['number'].'></div>'; и опять print_r($ch) сюда
погоди)))))Появилась другая проблема)))) Чтобы проверить а будет ли удалятся посредством запроса, я для теста вывела другим способом(попыталась вывести на экран), но пусто, просто чистый экран. if($button=="del_number") { $r=mysql_query("select * from phone where number=' ".$ch." ' "); $r2=mysql_fetch_assoc($r); echo $r2['number']; } Ты меня извини, что я такая навязчивая, но я еще всех тонокостей не понимаю((((Мне до спеца еще ох сколько....
PHP: <? if($button=="del_number" AND !empty($ch)) { foreach($ch as $key) { $row=mysql_query("select * from phone where number='$key'"); $obj=mysql_fetch_object($row); echo $obj->number.'<br />'; } } else { echo 'удалять нечего'; } ?>