Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[Решено] JS + Option: при выборе опции должна вызываться определенная функция


Recommended Posts

Доброго времени суток

 

Помогите решить задачу

 

есть набор опций

<select>
  <?php $i = 0 ?>
  <?php foreach ($setting_map as $setting) { ?>
    <option value="<?php echo $i; ?>"> <?php echo $setting['btn']; ?></option>
  <?php $i++; ?>
  <?php } ?>
</select>

при выборе опции должна вызываться определенная функция  fn__<?php echo i$ ?>(); 

 

пробовал через onchange не помогло, подскажите как сделать правильно

Link to post
Share on other sites

Все решил, тему можно закрывать 

 

решил все переписав функцию

Link to post
Share on other sites

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

 

Есть список, в списках не можно, а точнее не правильно использовать события onClick=" " для каждого пункта option, для этого случая есть onСhange=""

 

Событие onchange

 

Событие возникает при изменении значения элемента формы, вроде текстового поля или списка. Например, событие onchange добавленное к тегу <textarea> срабатывает каждый раз, когда введен новый текст и поле потеряло фокус.

 

Синтаксис - onchange="скрипт"

 

Выглядит это все вот так >>

<select onchange="">
  <option value ="1"> option 1 </option>
  <option value ="2"> option 2 </option>
  <option value ="3"> option 3 </option>
  <option value ="4"> option 4 </option>
  <option value ="5"> option 5 </option>
</select>

Для того что что бы получить значение value каждый раз как будет выбрана опция в javascript есть такая конструкция  this.selectedIndex подробнее в учебнике по js https://learn.javascript.ru/form-elements

 

исходя из этого пишем скрипт который будет принимать значения value и сравнивать 

function my__js(value) { 
 if (value == нужному значению){
   ....
 }
}

теперь когда есть функция которая которая принимает знания value добавляем её вызов в наши select c передачей значения

onchange="my__js(this.selectedIndex)"

все вместе выглядит так 

<select onchange="my__js(this.selectedIndex)">
  <option value ="1"> option 1 </option>
  <option value ="2"> option 2 </option>
  <option value ="3"> option 3 </option>
  <option value ="4"> option 4 </option>
  <option value ="5"> option 5 </option>
</select>

<script type="text/javascript"> 
  function my__js(value) {
    if (value == нужному значению){
      ....
    }
  }
</script>
Link to post
Share on other sites

лучше добавить id своему select`у и по нему вертеть элемент

<select id="mego_select_id">
  <option value="1">option 1</option>
  <option value="2">option 2</option>
  <option value="3">option 3</option>
  <option value="4">option 4</option>
  <option value="5">option 5</option>
</select>

<script type="text/javascript"><!--
$('#mego_select_id').live('change', function(){
    var selectedVal = $('#mego_select_id option:selected').val();
    if (selectedVal == 'нужному значению'){
      ...
    }
});
//--></script>
а что тут

    if (value == нужному значению){
      ...
    }
???

вдруг еще проще можно было все сделать.

Link to post
Share on other sites

проще не выйдет, так как все подтягивается с БД и  циклом перебраться

<?php $i = 0 ?>

function (index) { 
  <?php foreach ($value as $key) { ?>

    if (index == <?php echo $i; ?>>){
      ... $key['name'];
      ... $key['name'];
  }

  <?php $i++; ?>
  <?php } ?> 
}
Edited by afwollis
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.