Есть такая проблемка......
Я делаю таблицу мотоциклов на сайте. Каждой строке соответствует Чекбокс. Мне нужно сделать так, чтобы когда я отметил нужные мне строки в чекбоксе я перешёл на страницу их редактирования. Страница редактирования должна выглядеть след. образом:
Нажимаем редактирование - открывается редактор для первого выбранного значения чекбокса, затем жмем кнопку "далее" и переходим ко второмe выбранному и т.д.
Я использовал для этого ПХП сессии. Смог запихнуть номера выбранных чекбоксов в массив сессию:
<?PHP session_start();
$_SESSION['number'] = array();
foreach($_POST['massiv'] as $checkbox) {
$_SESSION['number'][] = $checkbox;
}
print_r($_SESSION['number']);
?>
echo "<form action = 'untitled.php' method='POST'>";
echo "<input type='submit' value='>>' /><input type='hidden' value='$i' name='submitted' />";
echo"</form>";
альше ступор((( Не могу додумать как сделать по нажатию >> чтобы вывело первый номер отмеченного чекбокса, потом >> второй номер выбранного чекбокса и т.д.
Подкрепите, кому не лень кодом....... спасибо!
Спустя 8 минут, 51 секунда (30.04.2011 - 23:07) quickxyan написал(а):
что-то не понял в чем проблема.
думаю по нажатию кнопки далее, надо выбирать данные из БД типа такого
думаю по нажатию кнопки далее, надо выбирать данные из БД типа такого
SELECT * FROM `table` WHERE `id`=$_SESSION["id"]
Спустя 9 часов, 38 минут, 7 секунд (1.05.2011 - 08:45) ybr написал(а):
Ну если я так напишу
Мне же на первой страничке редактирования выдаст сразу Все значения отмеченных чекбоксов.... А мне такое не надо. Допустим выбрал я 5 чекбоксов.... жму "Редактировать"
появляется 1-ый Отмеченный номер, жму кнопку ">>" появляется 2-ой отмеченный номер и так далее, пока не закончятся отмеченные номера
if($_POST[`submitted`]
{
for(...)
SELECT * FROM `table` WHERE `id`=$_SESSION["id"]
}
Мне же на первой страничке редактирования выдаст сразу Все значения отмеченных чекбоксов.... А мне такое не надо. Допустим выбрал я 5 чекбоксов.... жму "Редактировать"
появляется 1-ый Отмеченный номер, жму кнопку ">>" появляется 2-ой отмеченный номер и так далее, пока не закончятся отмеченные номера
Спустя 44 минуты, 46 секунд (1.05.2011 - 09:30) quickxyan написал(а):
почему это появятся все отмеченые чекбоксы???
появиться только тот у которого id совпадает с сессионной переменной.
другое дело если на одном id несколько записей может быть, ну это в том случае если id не автоинкрементный и не уникальный
появиться только тот у которого id совпадает с сессионной переменной.
другое дело если на одном id несколько записей может быть, ну это в том случае если id не автоинкрементный и не уникальный
Спустя 44 минуты, 52 секунды (1.05.2011 - 10:15) ybr написал(а):
Я отметил ПРОИЗВОЛЬНОЕ КОЛИЧЕСТВО чекбоксов. Жму "Редактировать".
Получаю значение ПЕРВОГО отмеченного чекбокса!!!! жму "далее"
Получаю значение ВТОРОГО отмеченного чекбокса!!!! жму "далее"
...
Получаю значение N-ного отмеченного чекбокса!!!! всё, отмеченные значения закончились!
Откуда я знаю сколько я отмечу чекбоксов......
Подкрепляю кодом:
Файл, где обьявлен для каждой строки таблицы чекбокс: motorcycle.php
<FORM ACTION="proverka.php" METHOD="POST">
<input type="submit" value="Press_me"/>
</FORM>
По нажатию "Press_me" перехожу на proverka.php!!!!!!!!!!!!!!!!!! ;!!!!!!!!
Подкрепляю кодом proverka.php. Тут я создаю Массив сессионных переменных, куда записываются НОМЕРА отмеченных чекбоксов. НЕ 1,2,3,...,N. а значение полей в таблице. Каждому значению чекбокса соотв. значение в поле Номер Двигателя.
<form action = 'proverka.php' method='POST'>
<input type='submit' value='>>' /><input type='hidden' value='1' name='submitted' />
</form>
Теперь в этом же файле proverka.php мне надо написать КОД, Я не понимаю какой, чтобы При нажатии на Кнопку Press_me, обьявленную в файле motorcycle.php, Я получил :
ВСЁ! П О М О Г И Т Е !!!!! Умоляю, я скоро сойду с ума(((((((((((((((
Получаю значение ПЕРВОГО отмеченного чекбокса!!!! жму "далее"
Получаю значение ВТОРОГО отмеченного чекбокса!!!! жму "далее"
...
Получаю значение N-ного отмеченного чекбокса!!!! всё, отмеченные значения закончились!
Откуда я знаю сколько я отмечу чекбоксов......
Подкрепляю кодом:
Файл, где обьявлен для каждой строки таблицы чекбокс: motorcycle.php
<FORM ACTION="proverka.php" METHOD="POST">
...
echo "<td valign=\"top\"><input type='checkbox' name = 'massiv[]' value = '$row[Carbody_number]'/></td>";
...
<input type="submit" value="Press_me"/>
</FORM>
По нажатию "Press_me" перехожу на proverka.php!!!!!!!!!!!!!!!!!! ;!!!!!!!!
Подкрепляю кодом proverka.php. Тут я создаю Массив сессионных переменных, куда записываются НОМЕРА отмеченных чекбоксов. НЕ 1,2,3,...,N. а значение полей в таблице. Каждому значению чекбокса соотв. значение в поле Номер Двигателя.
<?php
session_start();
//peremennaja sessii eto massiv
$_SESSION['number'] = array();
//zanosim elementi 4ekboxa v massiv
foreach($_POST['massiv'] as $checkbox) {
$_SESSION['number'][] = $checkbox;
}
//smotrim massiv
print_r($_SESSION['number']);
?>
<form action = 'proverka.php' method='POST'>
<input type='submit' value='>>' /><input type='hidden' value='1' name='submitted' />
</form>
Теперь в этом же файле proverka.php мне надо написать КОД, Я не понимаю какой, чтобы При нажатии на Кнопку Press_me, обьявленную в файле motorcycle.php, Я получил :
- значение ПЕРВОГО отмеченного чекбокса!!!! жму "далее"
- значение ВТОРОГО отмеченного чекбокса!!!! жму "далее"
- значение N-ного отмеченного чекбокса!!!! всё, отмеченные значения закончились!
ВСЁ! П О М О Г И Т Е !!!!! Умоляю, я скоро сойду с ума(((((((((((((((
Спустя 6 минут, 45 секунд (1.05.2011 - 10:22) quickxyan написал(а):
может сделать выборку из таблицы по всем включеным чекбоксам. записать все что выбралось в массив и потом при нажатии на кнопку далее выводить первый элемент массива и дописать к адресу ?num=1, потом по еще одному нажатию далее, добавляем к num 1 и выводим второй элемент.
может как-то неясно написал, но сама идея в том, что на каждой странице будет GET-переменная или можно сессионную использовать и там будет значение индекса массива.
может как-то неясно написал, но сама идея в том, что на каждой странице будет GET-переменная или можно сессионную использовать и там будет значение индекса массива.
Спустя 22 минуты, 4 секунды (1.05.2011 - 10:44) ybr написал(а):
спасиб, советовали так уже... я это кодом не представляю.........
+Это всё будет реализовываться в ОДНОМ ЖЕ ФАЙЛЕ????
+Это всё будет реализовываться в ОДНОМ ЖЕ ФАЙЛЕ????
Спустя 6 минут, 56 секунд (1.05.2011 - 10:51) ybr написал(а):
как это сделать циклом не циклом............не пойму никак((((((((((
<form action = 'proverka.php' method='POST'>
<input type='submit' value='>>' /><input type='hidden' value='1' name='submitted' />
</form>
<?php
session_start();
//peremennaja sessii eto massiv
$_SESSION['number'] = array();
//zanosim elementi 4ekboxa v massiv
foreach($_POST['massiv'] as $checkbox) {
$_SESSION['number'][] = $checkbox;
}
//smotrim massiv
print_r($_SESSION['number']);
if($_POST['submitted'])
{
echo"Что тут писать????? как передать Следующему нажатию какой-либо адресс(((((((((";
}
?>
<form action = 'proverka.php' method='POST'>
<input type='submit' value='>>' /><input type='hidden' value='1' name='submitted' />
</form>
Спустя 59 минут, 21 секунда (1.05.2011 - 11:50) Гость_liw написал(а):
Ну если в $_GET['num'] у тебя выбранный номер (далее $current)
а в $_SESSION['selected'] у тебя список всех выбранных номеров.
Тогда для кнопки >> тебе можно получить ссылку таким образом:
И кстати пиши либо по-русски либо по-английски но ненадо делать вот такого
$_SESSION['massiv'] - смотрится.. эм.. короче некрасиво
а в $_SESSION['selected'] у тебя список всех выбранных номеров.
Тогда для кнопки >> тебе можно получить ссылку таким образом:
$res = array_search($current, $_SESSION['selected']);
if($res === false){
// тут косяк какой то ибо номер не найден
}elseif($res+2 > sizeof($_SESSION['selected'])){
// всё мотоциклов больше нет, не нужно рисовать кнопку >>
}else{
// в переменной $next следущий номер
$next = $_SESSION['selected'][$res+1];
}
И кстати пиши либо по-русски либо по-английски но ненадо делать вот такого
$_SESSION['massiv'] - смотрится.. эм.. короче некрасиво
Спустя 54 минуты, 36 секунд (1.05.2011 - 12:45) ybr написал(а):
Спасибо liw, буду разбираться