Перезагружающаяся форма + php

D
На сайте с 28.06.2008
Offline
980
245

Чтобы облегчить ручной труд хочу сделать форму с чек боксами.

Если я выбираю один из чек боксов и жму Submit - делается нужный мне запрос.

Нужно так же добавить кнопку (пропустить) - не знаю как. Которая бы позволяла перейти к следующей итерации цикла.

Вот что я наговнокодил:


<?php
//запрос на получения списка адресов, с группировкой
$db->setQuery("SELECT title,item_id, COUNT(*) as chislo FROM working WHERE c_id = 0 group by title having count(*)>10 ORDER BY COUNT(*) DESC limit 1");
$result = $db->loadObjectlist();

foreach ($result as $item){

//определение города адреса
$db->setQuery("SELECT t2.name FROM d.items as t0
LEFT JOIN sections as t2 on t0.section_id = t2.id
WHERE t0.id = '{$item->item_id}'");
$result2 = $db->loadObjectlist();
$item->title = addslashes($item->title);

//поиск вариантов адресов
$db->setQuery("SELECT * FROM `address` WHERE MATCH ( street_address) AGAINST ('{$item->title}') AND locality = '{$result2[0]->name}'");
$result3 = $db->loadObjectlist();


}

?>

<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<?php
echo $item->title." --- ".$item->chislo;
?>

<form action="pravki.php" method="post">
<?php for ($i=0;$i<count($result3);$i++):
$db->setQuery("SELECT name FROM `c_items` WHERE `id` = '{$result3[$i]->item_id}'");
$result4 = $db->loadObjectlist();
?>
<input type="checkbox" name="ID[]" value="<?php echo $result3[$i]->item_id; ?>" /><?php echo $result4[0]->name; ?><br />
<?php endfor; ?>
<input type="submit" name="formSubmit" value="Submit" />
</form>
</body>
</html>

<?php

$id = $_POST['ID'];
if (empty($id)) {
echo("Вы ничего не выбрали ");
} else {
$N = count($id);

for ($i = 0; $i < $N; $i++) {
echo($id[$i] . "<br>");
$db->setQuery("UPDATE working SET c_id = {$id[$i]} WHERE title = '{$item->title}'");
$db->query();
}
}

В итоге я получил форму, где вижу нужный мне вариант. Выбирая нужный чекбокс - делается верный запрос.

Проблемы:

1. После нажатия Submit страница перезагружается, я вижу те же адреса (инфа кешируется походу)

2. Не знаю куда и как впендюрить кнопку "пропустить"

3. По идее нужно убирать лимит 1 и делать все в цикле?

4. Может как-то можно добавить чтобы адрес страницы менялся при перезагрузке? например

/pravki.php?1

/pravki.php?2 и т.д

IL
На сайте с 20.04.2007
Offline
412
#1
Dram:
4. Может как-то можно добавить чтобы адрес страницы менялся при перезагрузке? например

Можно добавить и использовать для OFFSET

Можно помечать "пропущенные" строки timestamp-ом последней обработки.. и добавить проверку на (ранее) "меньше определённого значения к примеру (time()-3600*2)"

D
На сайте с 28.06.2008
Offline
980
#2

Пропуск без выбора я подумал реализовать еще одной кнопкой Submit - которая будет передавать continue в цикл.

Пока не понятно как сделать чтобы при перезагрузке страницы было

/pravki.php?1

/pravki.php?2 и т.д



---------- Добавлено 18.10.2019 в 19:33 ----------

Решил так

<form action="<?php echo "/pravki.php?" . mt_rand(5, 14564565); ?>" method="post">

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий