Просмотр полной версии : Передать переменную и по её значению сделать выбор из selecta
Здравствуйте уважаемые.
Передо мной стоит такая задача
1. Отправить переменную на другую страничку
делаю так:
<html>
<head>
<title> Отправка данных </title>
</head>
<body>
<form action="target.php">
<button value="11111010101" name="hidden" type="submit">
Отправить форму</button></p>
</form>
</body>
</html>
2. Поймать переменную на другой страничке, и в зависимости от её значения сделать выбор из select
Как то так:
...
$name=$_POST['hidden'];
<select size="1" name="rooms"
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
var select = document.getElementsByTagName('select') [0];
select.addEventListener('change', function() {
<-- значение переменной->
});
</script>
...
Подскажите как правильно плиз.
nice_try
30.03.2014, 23:12
ну ты можешь при выводе option у твоего select проверять value с переданной переменной и если совпадает, то ставить selected
Я не просил готового решения.
Мне нужен был, только совет как обработать переданное значение и открыть страницу
Тем более что большая часть уже сделана :yes:
aleks_lv
30.03.2014, 23:52
вариант..
1)запиши в куки по клику
2)переход на другую страницу location.href="другая страница"
3)на другой считал куки и выставил селект
Vlasenko Fedor
31.03.2014, 00:03
<?php
// этоо файл target.php
$sel = filter_input(INPUT_GET, 'hidden', FILTER_VALIDATE_INT);
if(!sel) $sel = 0;
?>
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<form action="target.php">
<button value="1" name="hidden" type="submit">Отправить форму</button>
</form>
<select size="1" name="rooms">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
window.onload = function () {
var ops = document.querySelectorAll("select[name=rooms]>option");
var sel = <?php echo $sel;?>;
if(sel < ops.length) ops[sel].selected = true;
};
</script>
</body>
</html>
Вариант не плохой. Спасибо. Но похоже что он решает обратную задачу.
Тем не мене эта функция
<script>
window.onload = function () {
var ops = document.querySelectorAll("select[name=rooms]>option");
var sel = <?php echo $sel;?>;
if(sel < ops.length) ops[sel].selected = true;
};
</script>
то что я искал.
В общем сделал так:
Файл с кнопкой. Кнопок там таких 3
===============
<meta charset="windows-1251">
<form method="post" action="target.php">
<input type="hidden" name="name1" value="1">
<input type=submit value="Отправить">
</form>
================
Файл target.php
================
<?
$sel=$_POST['name1'];
if(!sel) $sel = 0;
echo $name;
?>
<select size="1" name="rooms">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
window.onload = function () {
var ops = document.querySelectorAll("select[name=rooms]>option");
var sel = <?php echo $sel;?>;
if(sel < ops.length) ops[sel].selected = true;
};
</script>
Ещё раз спасибо всем кто помогал.
Тема закрыта.
Vlasenko Fedor
31.03.2014, 22:14
так нельзя
$sel=$_POST['name1'];
if(!sel) $sel = 0;
все данные полученные от клиента нужно фильтровать
$sel = (int)$_POST['name1'];
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot