Jump to content
  • 0

Передача переменных между формами


Renegade
 Share

Question

Есть 3 <form> в них 3 <select> (В каждой форме по одному)... Назовем их x1,x2,x3... В каждом <select> своя табличка данных... В каждой <form> есть кнопка выбрать элемент... по отдельности все три переменные устанавливаются (в них оказывается ID выбранного элемента от <select>...) Для работы 4-ой формы нужно знать, что выбрано во всех трех предыдущих...

Как это делается по средством php?

У меня при установке x2, x1 и x3 сбрасываются в 0...

Вот пример одной формы:


<?
echo '<form action="?act=show" method="post">';
echo '<select multiple name="x1" size="11">';
$sql = 'select * from _x1';
$r=mysql_query($sql) or die;
while ($d=mysql_fetch_array($r)) {
echo '<option value="'.$d['id'].'">'.$d['name'].'</option>';
}
echo '</select><br>';
echo '<input type="submit" value="Выбрать">';
echo '</form>';
?>

Edited by Renegade
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Сделай яваскриптом, зачем здесь php?

С Явой не знаком... можно пример?

А вообще странно... Неужели так трудно сохранить значение 3х переменных в php с разных форм???!!!

Может я просто непонятно объяснил задачу???

Вот простейший пример:

x1 - содержит марку авто (например MAZDA)

x2 - содержит модификацию (например 626 - выдается посредством определения x1, т.е. после того как мы выбрали MAZDA и нажали Выбрать в первой форме - формируется список x2){это работает поскольку в деле пока одна переменная}

x3 - содержит категорию транспорта - кнопка данной формы должна привязать категорию (B - Легковой транспорт) к MAZDA(x1) + 626(x2) и апдейдить определенную таблицу привязок

Заранее спс за ответы...

Link to comment
Share on other sites

  • 0

Ну тут я вообще не понимаю, в чём сложность

<input type="button" onclick="click()" vluae="привязать">

function click()
{
var auto=document.getELementById('auto').value
var model=document.getElementByUd('model').value;
var type=document.getElementByUd('type').value;
//аякс-запрос с передачей всех трёх параметров
file.php?auto=mazda&model=626&type=Легковая
}

Link to comment
Share on other sites

  • 0

я думаю у тебя и при установке x3, x1 и x2 будет сбрасываться в 0.

когда ты отправляешь данные нажимая кнопку


<input type="submit" value="Выбрать">

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

Link to comment
Share on other sites

  • 0

я думаю у тебя и при установке x3, x1 и x2 будет сбрасываться в 0.

когда ты отправляешь данные нажимая кнопку


<input type="submit" value="Выбрать">

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

Все верно... но проблема в том, что второй селект должен работать по id первого, поэтому и сделал разными формами... т.е. в первой форме выбираешь что-то жмешь кнопку и появляется список второй формы... 1 и 2 селекты обращаются к одной и той же базе... но разными запросами... первая используя id, а второй используя parent_id

Как быть?

Edited by Renegade
Link to comment
Share on other sites

  • 0

слишком замучено получается у тебя

я бы сделал так:

выбираем в x1 списке по событию onChange мы удаляем x2 и x3 и отправляем данные формы на скрипт php

делаем запрос в базу исходя из пришедших данных x1,x2,x3

т.к. x2 и x3 отсутствуют, запрос выдаст список x2 по парэнту x1

у нас появился второй список соответствующий выбранному пункту в первом

выбираем пункт во втором списке, удаляем x3, отправляются данные x1,x2

делаем запрос в базу через парэнты x1 и x2 формируется список x3

и т.д.

1 скрипт

1 запрос к базе

1 форма

и все работает без лишних телодвижений

Edited by Switch74
Link to comment
Share on other sites

  • 0

Ну тут я вообще не понимаю, в чём сложность

<input type="button" onclick="click()" vluae="привязать">

function click()
{
var auto=document.getELementById('auto').value
var model=document.getElementByUd('model').value;
var type=document.getElementByUd('type').value;
//аякс-запрос с передачей всех трёх параметров
file.php?auto=mazda&model=626&type=Легковая
}

file.php?auto=mazda&model=626&type=Легковая

вот это откуда должно появиться??? переменные $auto, $model, $type пусты при простой попытке выдать их через echo после нажатия кнопки...

Link to comment
Share on other sites

  • 0

file.php?auto=mazda&model=626&type=Легковая

вот это откуда должно появиться??? переменные $auto, $model, $type пусты при простой попытке выдать их через echo после нажатия кнопки...

это должно сформироваться у тебя исходя из данных твоих

file.php - это имя скрипта который у тебя отвечает за обработку этих форм

а всё что после '?' это то что выбрано в x1, x2 и x3 списках

Link to comment
Share on other sites

  • 0

file.php?auto=mazda&model=626&type=Легковая

вот это откуда должно появиться??? переменные $auto, $model, $type пусты при простой попытке выдать их через echo после нажатия кнопки...

это должно сформироваться у тебя исходя из данных твоих

file.php - это имя скрипта который у тебя отвечает за обработку этих форм

а всё что после '?' это то что выбрано в x1, x2 и x3 списках


<?
echo '<form action="?act=lvl&catid='.$x5.'&par='.$x6.'&lvl='.$x7.'&cat2='.$x8.'" method="post">';
echo '<select multiple name="lvl" size="11">';
$sql = 'select * from _level';
$r=mysql_query($sql) or die;
while ($d=mysql_fetch_array($r)) {
echo '<option value="'.$d['id'].'">'.$d['name'].'</option>';
}
echo '</select><br>';
echo '<input type="button" onclick="click()" value="Привязать уровень">';
echo '</form>';
?>
<script type="text/javascript">
function click()
{
var x5=document.getElementById('catid');
var x6=document.getElementById('par');
var x7=document.getElementById('lvl');
var x8=document.getElementById('cat2');
}
</script>

Если сделать так - то все переменные пустые... или строку надо не здесь формировать?!

Link to comment
Share on other sites

  • 0

Покажи лучше не код php, который генерирует страницу, а содержимое готовой страницы.

Я код писал условный, просто чтобы показать, как это всё должно работать. Под select сам должен был переписать.

http://jsfiddle.net/fD8FW/

Link to comment
Share on other sites

  • 0

Сорь, что пропадал - выезжал на отдых... А там не было интернета...

Вот даю картинку...

рисунок

Раздел "все категории" - там марки машин... Выделяю нужную и жму "Показать привязку" - мне открываются модели (раздел "Привязка").

Задача такая надо теперь привязать к ним "уровень меню".

т.е. выделяю Hyundai, Atos, 10 уровень и жму "Привязать уровень" и должна обновиться таблица примерно таким кодом...

Update cats set lvl = &x3 where cat_id = $x1 and parent_id = $x2

x1 - id марки

x2 - id модели

x3 - id Уровень

Link to comment
Share on other sites

  • 0

Покажи лучше не код php, который генерирует страницу, а содержимое готовой страницы.

Я код писал условный, просто чтобы показать, как это всё должно работать. Под select сам должен был переписать.

http://jsfiddle.net/fD8FW/

Переделал все как в вашем примере... только подскажите как данные в Адресную строку поместить из явы???

И еще вы не использовали формы... У меня 4 формы - см. рисунок предыдущего поста...

Edited by Renegade
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy