|
|
|
|
<?
$chk = $_GET['chk'[;
if($chk)
foreach($chk as $num => $value)
if($value == "on")
$query1="DELETE FROM new WHERE id = '$num'";
echo "$query1";
$rez1= mysql_query($query1);
if ($rez1) {
echo "нажата кнопка удалить записи"; }
?>
|
//chk[$num] | |
|
|
|
|
|
|
|
для: lilu
(29.08.2005 в 15:26)
| | Опечатка в первой строчке:
А разве $chk является массивом? | |
|
|
|
|
|
|
|
для: Loki
(29.08.2005 в 16:45)
| | Дело не в опечатке :)))!
а chk[$num] вот откуда берётся:
<input type=\"checkbox\" name=\"chk[$num]\"> | |
|
|
|
|
|
|
|
для: lilu
(29.08.2005 в 15:26)
| | Ты скобки операторные пропустил:
<?
$chk = $_GET['chk'];
if($chk)
foreach($chk as $num => $value)
if($value == "on")
{
$query1="DELETE FROM new WHERE id = '$num'";
echo "$query1";
$rez1= mysql_query($query1);
if ($rez1) {
echo "нажата кнопка удалить записи"; }
}
?>
|
Или что то вроде того | |
|
|
|
|
|
|
|
для: Евгений Петров
(29.08.2005 в 17:37)
| | По поводу операторных скобок то их пропущено больше чем одни, но всё-равно не пашет (я уже совсем запуталась):
<?
$chk = $_GET['chk'];
if($chk) {
foreach($chk as $num => $value) {
if($value == "on")
{
$query1="DELETE FROM new WHERE id = '$num'";
echo "$query1";
$rez1= mysql_query($query1);
if ($rez1) {
echo "chk[$num]"; // не определяется
echo "нажата кнопка удалить записи"; }
} //if($value == "on")
}//foreach($chk as $num => $value)
}//if($chk)
?>
|
| |
|
|
|
|
|
|
|
для: lilu
(29.08.2005 в 17:53)
| | А что конкретно не работает, не удаляет или ошибки пишет, вставь перед всем кодом но после $chk = $_GET['chk']; строку
| |
|
|
|
|
|
|
|
для: Евгений Петров
(29.08.2005 в 18:13)
| | в том то и дело что ничего не пишет
и после вставленной строки тоже! как буд-то эта переменная пустая или что-то вроде того.... | |
|
|
|
|
|
|
|
для: lilu
(29.08.2005 в 18:17)
| | Значит просто навсего массив не передается приведи полностью код где у тебя форма с checkbox'ами | |
|
|
|
|
|
|
|
для: Евгений Петров
(29.08.2005 в 18:25)
| | Совсем недавно мы с вами уже говорили про размещение checkbox в каждую строку и всё удачно получилось! только я вместо предложенного вами chk[%d] написала chk[$num]! ЧТобы скрипт получил значение переменной $num Но потом... Привожу код:
<?
echo "<tr><td>№</td><td>наименование</td><td>цена</td><td>кол-во</td><td>checkbox</td></tr>";
while ($myrow=mysql_fetch_row($rez))
{
printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td><input type=\"checkbox\" name=\"chk[$num]\"></td></tr>\n", $myrow[0], $myrow[1], $myrow[2],$myrow[3],$myrow[4],$myrow[0]);
}
echo "</table>\n";
?>
?>
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post">
<input name="subdel" type="submit" value="удалить">
</form>
<?php
if ($_POST['subdel']) {
$chk = $_GET['$chk'];
if($chk) {
foreach($chk as $num => $value) {
if($value == "on") {
$query1="DELETE FROM new WHERE id = '$num'";
echo "$query1";
$rez1= mysql_query($query1);
if ($rez1) {
echo "chk[$num]";
echo "нажата кнопка удалить записи";
}
}// foreach($chk as $num => $value
}//if($value == "on")
}// if($chk)
}//if ($_POST['subdel'])
|
| |
|
|
|
|
|
|
|
для: lilu
(29.08.2005 в 18:32)
| | Попробуй так
<?
echo "<tr><td>№</td><td>наименование</td><td>цена</td><td>кол-во</td><td>checkbox</td></tr>";
while ($myrow=mysql_fetch_row($rez))
{
echo "<tr><td>$myrow[0]</td><td>$myrow[1]</td><td>$myrow[2]</td><td>$myrow[3]</td><td><input type=\"checkbox\" name=\"chk['$myrow[0]']\"></td></tr>\n";
}
echo "</table>\n";
?>
?>
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post">
<input name="subdel" type="submit" value="удалить">
</form>
<?php
if ($_POST['subdel']) {
$chk = $_GET['$chk'];
if($chk) {
foreach($chk as $num => $value) {
if($value == "on") {
$query1="DELETE FROM new WHERE id = '$num'";
echo "$query1";
$rez1= mysql_query($query1);
if ($rez1) {
echo "chk[$num]";
echo "нажата кнопка удалить записи";
}
}// foreach($chk as $num => $value
}//if($value == "on")
}// if($chk)
}//if ($_POST['subdel'])
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(29.08.2005 в 18:41)
| | Всё тоже ! У меня такое впечатление что $num вообще не хранит никакого значения! | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 10:46)
| | Стоп. Все правильно, просто ты отсылаешь данные методом POST а принимаешь их методом GET. Замени $chk = $_GET['$chk']; на $chk = $_POST['chk'];
И кстати у тебя неправильно было написано надо не $chk = $_GET['$chk']; а $chk = $_GET['chk']; (без доллара) | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 10:46)
| | А вы его echo выведите и посмотрите - появится он в окне браузера или нет
<?php
echo $num."<br>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.08.2005 в 13:16)
| | нет не появляется и не одно echo() что я вывожу на экран не появляется....и дело тут не в post или get! :(( | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 15:28)
| | Вот скорее всего в чём проблема, помимо того, что писал Евгений Петров, у вас имеется строка вида
<?php
$chk = $_POST['$chk'];
?>
|
переменная $chk не будет интерпретироваться, а так и будет искаться ключ $chk - это связано с тем что в одинарных кавычках переменные не заменяются их значениями - подробнее в http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=130. Поэтому вас следует писать просто
<?php
$chk = $_POST[$chk];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.08.2005 в 16:39)
| | не помогло...
мне кажется что-то не то в этом выражении
<input type=\"checkbox\" name=\"chk['$myrow[0]']\"> | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 16:53)
| | Да, скорее всего, попрбуйте переписать его следующим образом
<input type=\"checkbox\" name=\"".chk[$myrow[0]]."\">
|
Однако всё вышесказанное тоже имейте ввиду... | |
|
|
|
|
|
|
|
для: cheops
(30.08.2005 в 17:02)
| | Я всё что мне советуют имею в виду..
После вашей замены вот что выдало
Parse error: parse error, expecting '','' or '';'' и далее номер строки (кстате не там совсем где я сделала эту замену)
Во как ...:(( | |
|
|
|
|
|
|
|
для: cheops
(30.08.2005 в 16:39)
| | Не надо вообще писать $ это не переменная, это элемент ассоциативного массива. Пиши
| |
|
|
|
|
|
|
|
для: lilu
(29.08.2005 в 15:26)
| | это значит что вы где-то пропустили ;
точку с зяпятой в конце | |
|
|
|
|
|
|
|
для: napTu3aH
(30.08.2005 в 17:28)
| | Я знаю что это значит, но почему раньше этой ошибки не было! И меняла я не точки с запятой а синтаксис с checkbox, кот не в конце строчки! Как -то всё это странно.... | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 17:32)
| | Без полного кода советовать что-то определённое сложно, я даже не знаю обрамлена ли строка одинарными кавычками или двойными. | |
|
|
|
|
|
|
|
для: cheops
(30.08.2005 в 17:48)
| | Вот эта строка
<?
echo "<table border=1>\n";
echo "<tr><td>№</td><td>наименование рубрики</td><td>наименование подрубрики</td><td>действие</td><td>текст объявления</td><td>контактные данные</td><td>дата</td><td>выбор</td></tr>";
while ($myrow=mysql_fetch_row($rez))
{
echo "<tr><td>$myrow[0]</td><td>$myrow[1]</td><td>$myrow[2]</td><td>$myrow[3]</td><td>$myrow[4]</td><td>$myrow[5]</td><td>$myrow[6]</td><td>$myrow[7]</td><td><input type="checkbox" name=".chk[$myrow[0]]."> </td></tr>\n";
}
echo "</table>\n";
?>
|
Ещё мне интересно когда в конец каждой строки добавляется checkbox в ф-ции echo как-то надо закрывать и открывать php? | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 17:55)
| | тут может быть проблема из-за кавычек внутри кавычек, у меня часто проблема именно в этом
Билебирда полная получаетсья, но попробуйте так
<table border=1>\n
<tr><td>№</td><td>наименование рубрики</td><td>наименование подрубрики</td><td>действие</td><td>текст объявления</td><td>контактные данные</td><td>дата</td><td>выбор</td></tr>
<?
while ($myrow=mysql_fetch_row($rez))
{
echo "<tr><td>$myrow[0]</td><td>$myrow[1]</td><td>$myrow[2]</td><td>$myrow[3]</td><td>$myrow[4]</td><td>$myrow[5]</td><td>$myrow[6]</td><td>$myrow[7]</td><td>";
?>
<input type="checkbox" name="
<?
echo ".chk[$myrow[0]].";
?>
"> </td></tr>\n
<?
}
?>
</table>\n
|
| |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 17:55)
| | Измени вот так:
<?
echo "<table border=1>\n";
echo "<tr><td>№</td><td>наименование рубрики</td><td>наименование подрубрики</td><td>действие</td><td>текст объявления</td><td>контактные данные</td><td>дата</td><td>выбор</td></tr>";
while ($myrow=mysql_fetch_array($rez))
{
echo "<tr><td>$myrow[0]</td><td>$myrow[1]</td><td>$myrow[2]</td><td>$myrow[3]</td><td>$myrow[4]</td><td>$myrow[5]</td><td>$myrow[6]</td><td>$myrow[7]</td><td><input type=\"checkbox\" name=chk[$myrow[0]]> </td></tr>\n";
}
echo "</table>\n";
?>
|
И замени на | |
|
|
|
|
|
|
|
для: Евгений Петров
(30.08.2005 в 18:00)
| | Ошибку писать перестало, но ...
Таблица выводится с checkbox-ами всё красивенько так, после выбора соот-их checkbox и нажатия кнопки "удалить" галочки в checkbox изчезают и вид странички возвращается в исходное положение! И так который раз...
И что бы я не пробовала! | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 18:29)
| | Выложи дамп базы таблицы из которой выводятся данные, т.е. new | |
|
|
|
|
|
|
|
для: Евгений Петров
(30.08.2005 в 20:35)
| | Вот:
id int(2) - primary key - autoincrement
nameR varchar(15) - index
nameP varchar(15) - index
action set('покупка','продажа','обмен') - index
text varchar(250)
kontact varchar(30)
data date - index | |
|
|
|
|
|
|
|
для: lilu
(30.08.2005 в 21:31)
| | Проверяем пошагово:
Вот что я изменила и сдвинулвсь с мёртвой точки....
<?
echo "<table border=1>\n";
echo "<tr><td>№</td><td>наименование рубрики</td><td>наименование подрубрики</td><td>действие</td><td>текст объявления</td><td>контактные данные</td><td>дата</td><td>выбор</td></tr>";
while ($myrow=mysql_fetch_row($rez))
{
$chk=$myrow[0]; //сразу одному массиву присвоила значения другого
echo "<tr><td>$myrow[0]</td><td>$myrow[1]</td><td>$myrow[2]</td><td>$myrow[3]</td><td>$myrow[4]</td><td>$myrow[5]</td><td>$myrow[6]</td><td>$myrow[7]</td><td><input type=\"checkbox\" name=$chk> </td></tr>\n";
echo "$chk"; // всё правильно выводится, только почему-то выше всей таблицы
}
echo "</table>\n";
if ($subdel) {
echo "$chk";} // а вот тут уже выводится только последнее значение этого массива почему?
?>
|
| |
|
|
|
|
|
|
|
для: lilu
(31.08.2005 в 12:35)
| | А каким SQL - запросом ты выбираешь данные из БД | |
|
|
|
|
|
|
|
для: Евгений Петров
(31.08.2005 в 14:35)
| | $query = "SELECT * FROM new"; | |
|
|
|
|
|
|
|
для: lilu
(31.08.2005 в 14:51)
| | Че то я все равно ничего не понимаю. Лучше выложи ПОЛНОСТЬЮ весь этот файл я посмотрю и исправлю. Только желательно прикрепи как файл. | |
|
|
|
|
 1.7 Кб |
|
|
для: Евгений Петров
(31.08.2005 в 21:31)
| | вот он | |
|
|
|
|
|
|
|
для: lilu
(01.09.2005 в 14:03)
| | Попробуй вот этот код | |
|
|
|
|
|
|
|
для: Евгений Петров
(01.09.2005 в 16:07)
| | у вас он работает?
у меня всё также - записи не удаляются!
теряется переменная $chk
вот вы интересно выводили сразу $chk где таблица выводится! Она уже там ничего не пишет и дальше всему остальному коду работать просто не с чем!
а когда я пишу вместо вашего <input type=\"checkbox\" name=\"chk[$myrow[0]]\">
я делаю вот так
<?
while($myrow=mysql_fetch_array($rez))
{
$chk=$myrow[0];
echo "<tr><td>$myrow[0]</td><td>$myrow[1]</td><td>$myrow[2]</td><td>$myrow[3]</td><td>$myrow[4]</td><td>$myrow[5]</td><td>$myrow[6]</td><td><input type=\"checkbox\" name=\"$chk\"></td></tr>\n";
echo "$chk";
}
?>
|
и тогда эта переменная действительно выводит 123456 и т.д. как номера столбцов, но потом когда мы её с помощью POST забираем и опять я вывожу её - то уже в ней ничего нет! Не понимаю я вот этого! | |
|
|
|
|
|
|
|
для: lilu
(02.09.2005 в 12:01)
| | Стоп! Ну конечно ничего не работало ты же сначала выводишь чекбоксы, а потом только форму к которой они якобы должны относиться. Вот попробуй это у меня работало. | |
|
|
|
|
|
|
|
для: Евгений Петров
(02.09.2005 в 17:01)
| | Спасибочки, теперь действительно всё работает!
Я и сама уже догадалась, но за терпение и за помощь вам особая благодарность:))) | |
|
|
|
|
|
|
|
для: lilu
(29.08.2005 в 15:26)
| | не знал что кавычки экранируютсья слешами :)
конец моим мучениям
УРА!!!! | |
|
|
|