Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PHP. Можно занести значение выпадающего списка (select), в переменную php файла. Как это сделать? Подробно внутри.

fuji fujigajiev Мыслитель (6183), закрыт 13 лет назад
Есть php файл, в котором имеется вот такой код:
<?php

$query = "insert into base values('','$_GET[nomer]','$V')";
mysql_query($query, $db);
?>

<select id='val' name='val' size='1'>
<option value= 0>Текст1</options>
<option value= 1>Текст2</options>
<option value= 2>Текст3</options>
</select>

При нажатии кнопки, цифра из value выпадающего списка, должна заноситься в переменную $V.

По разному пробовал, но не работает.
Лучший ответ
Cheery Высший разум (200626) 13 лет назад
Вы должны понять простую вещь - php выполняется на сервере, а изменения формы - в браузере клиента.
До тех пор, пока вы данные со страницы не отправите на сервер - через отправку формы, AJAX или иным способом - это не важно, php скрипт их не получит.

Сделайте отправку формы с селектом на сервер, тогда там, в скрипте, получите что было выбрано в селекте. Так и следует поступать начинающим.

ps: $query = "insert into base values('','$_GET[nomer]','$V')";
плохой способ - почитайте про SQL инъекции
Остальные ответы
Vasa Retiver Гуру (4134) 13 лет назад
Вы что такое form знаете? Напишите нормальный html с использованием form, поставьте кнопку submit, для формы задайте action и method. В зависимости от метода получите из глобального массива значение с индексом 'val' и присвойте его переменной $V.
Попробуйте читать документацию. Удачи.
fuji fujigajievМыслитель (6183) 13 лет назад
Так сделать не получится. Пользователь уже находится на этой php странице. На ней имеется кнопка, нажав на которую в $V должна занестись значение, которое потом заносится в БД.

Поменять PHP на HTML не могу.
Проблема в том, что в этот PHPфайл уже занесена некоторая инфа из формы другой HTML страницы. (Зеленые стрелки)
Если я сделаю второй PHP файл, и буду передавать в него значения формы из первого PHP файла, (синяя стрелка) то при возврате через редирект, (красная стрелка) назад к первому PHPфайлу, из него теряется все инфа, которая была в него введена ранее с HTML.(зеленые стрелки)
Прим Палвер Мыслитель (6847) Эту информацию можно заново извлечь из базы данных - мы же только что её записали. Или, если это другая информация, держать в сессии. К тому же можно пользовать ajax
fuji fujigajievМыслитель (6183) 13 лет назад
Cheery Высший разум (200626) >Проблема в том, что в этот PHPфайл уже занесена некоторая инфа из формы другой HTML страницы. (Зеленые стрелки) ну и что? читайте про сессии в php www.phpfaq.ru/sessions без отправки данных из формы на сервер значение в php не попадет. как вы это делаете - ваше дело один из вариантов - с помощью формы. другой - с помощью get параметра и, например iframe (способов много)
Прим Палвер Мыслитель (6847) 13 лет назад
< form method="post" action="/query.php" >

<select>
<optiоn>Текст1</options>
<optiоn>Текст2</options>
<optiоn>Текст3</options>
</select>

< input type="submit" / >

< /form >

Это был html

php в файле query.php:

< ?php

$nomer = intval($_POST['nomer']);

$V = intval($_POST['val']);

$query = "insert into `base` values('',$nomer,$V)";
mysql_query($query, $db);

? >
fuji fujigajievМыслитель (6183) 13 лет назад
Позвольте уточнить. Зачем перед query.php стоит слэш?

form method="post" action="/query.php"
Прим Палвер Мыслитель (6847) Привычка. Некоторые говорят, что дурная. Люблю от корня сайта указывать адреса.
Алексей Марфин Ученик (179) 5 лет назад
Не будет этот код работать!
Ваш, так называемый ['nomer'] - ни к чему тут не привязан..

так что ответа тут нет.. ребятки.. одна пудра на мозгах..
Похожие вопросы