1 Востаннє редагувалося nazar (13.07.2016 09:31:13)

Тема: Не можу передати дані у формі

Доброго дня,

є форма, яка має передати дані в інший скрипт (z2.php).
Проблема в тому, що при натисканні на кнопку відразу відбувається перехід в цей скрипт, а треба, щоб спершу з'ясувало відмічені поля, на підставі відміток сформувало рядок з деякою інформацією і передало його в скрипт z2.php.
У  z2.php за допомогою var_dump можна побачити, які поля були відмічені. Але потреба не в номерах полів, а в іншій інформації, залежній від номера поля. Варіант формувати рядок в z2.php на основі номерів полів не прийнятний, на жаль. Треба неодмінно передати його з попереднього скрипту.
Код нижче - не оригінальний скрипт, а примітивний тест, але він не працює в тій же частині, що й оригінал.

Пробував передати дані через $_POST, $_SESSION, через запис у файл. Скрипт просто не виконується в рядку ( if($_POST["button_".$i]=="select") ), - відразу відбувається перехід.
Ґуґлив, але про форми написано дуже однотипно (перелік можливостей), і майже не розказано про те як вони виконуються. Буду вдячний за посилання на цю тему.

session_start();
echo '<form  method="post" action="z2.php">';

for($i=0;$i<7;$i++) {
echo '<input type="checkbox" name="button_'.$i.'" value="select" >'.$i."&nbsp &nbsp &nbsp";

if($_POST["button_".$i]=="select") $list.=" ".$i; 
}
$_SESSION['test']=$list;

echo '<br><input type="submit" name="enter" value="Обрати"></form>';

2

Re: Не можу передати дані у формі

Стоп-стоп-стоп. Давайте трохи зупинимося. Ви уявляєте собі, що таке стек веб-технологій? У користувача браузер, який працює з HTML/JavaScript. У вас - веб-сервер, на якому працює PHP. PHP формує сторінку на HTML/JavaScript і все. Ніякої "передачі в інший скрипт" не відбувається: користувач працює в браузері, коли скрипт PHP вже закінчив роботу, а PHP працює тоді, коли користувач захотів перейти на іншу сторінку (наприклад, натиснувши кнопку Submit в формі; про AJAX зараз не говоримо, але там такий самий принцип, просто хитро використовується).

А тепер - у вас є форма, яку створює скрипт z1.php, правильно? І ви хочете, щоб вона передавала введені дані в скрипт z2.php. Далі треба підказувати?

Подякували: 221VOLT, leofun012

3

Re: Не можу передати дані у формі

Даруйте, я самоук, і знання в мене уривчасті (розібрався - побіг далі). Так, це жодною мірою не вибачає, але зараз прошу про допомогу.

Досі я вважав, що обмін даними між скриптами все-таки відбувається, в тій чи іншій формі - чи то Пост-Ґет, чи сесія, чи куки. Нехай непрямий, небезпосередній, але є.

у вас є форма, яку створює скрипт z1.php, правильно? І ви хочете, щоб вона передавала введені дані в скрипт z2.php. Далі треба підказувати?

Треба. Якщо мова про include/require, то не підходить.

Якщо питання надто дурне - скажіть це прямо, будь ласка, але не возюкайте мордою по столу. Видалю тему і край, без зайвих нервів.

4

Re: Не можу передати дані у формі

Обмін відбувається, але вкрай опосередкований.
Ще раз: скрипт, який ви виклали, створює форму і одразу намагається обробити її результати. Так не буває, хіба що ви пропонуєте користувачу заповнити форму наново. Вам треба зробити окремо скрипт, який створює форму, і окремо той, що обробляє результати. Ви можете, звісно, робити це одним скриптом, але тоді буде два окремих виклики цього скрипту - перший, коли результатів ще нема, і другий, коли вже є. Десь в навчальних матеріалах я колись бачив таке:

if(!isset($_POST["smth"])){
... вивід форми ...
}
else {
... обробка результатів ...
}

Перший раз, коли заходите на сторінку, викликається перша частина, після натискання на Submit - друга. Але для розуміння легше рознести їх у різні скрипти.

Подякували: nazar, funivan, 221VOLT, leofun01, vov4ok5

5

Re: Не можу передати дані у формі

Дивуюсь звідки в koala стільки терпіння пояснювати кожного разу те саме. І дякую...

Подякували: funivan, 221VOLT, leofun01, fanatp4