Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Передать переменную и по её значению сделать выбор из selecta (https://javascript.ru/forum/dom-window/46156-peredat-peremennuyu-i-po-ejo-znacheniyu-sdelat-vybor-iz-selecta.html)

SeGun 30.03.2014 22:49

Передать переменную и по её значению сделать выбор из 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

SeGun 30.03.2014 23:22

Я не просил готового решения.
Мне нужен был, только совет как обработать переданное значение и открыть страницу
Тем более что большая часть уже сделана :yes:

aleks_lv 30.03.2014 23:52

вариант..
1)запиши в куки по клику
2)переход на другую страницу location.href="другая страница"
3)на другой считал куки и выставил селект

SeGun 31.03.2014 00:02

Спасибо. Попробую.

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>

SeGun 31.03.2014 00:49

Вариант не плохой. Спасибо. Но похоже что он решает обратную задачу.
Тем не мене эта функция
<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>

то что я искал.

SeGun 31.03.2014 21:55

В общем сделал так:
Файл с кнопкой. Кнопок там таких 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'];

SeGun 31.03.2014 22:32

То же верно.


Часовой пояс GMT +3, время: 13:54.