Jump to content
Sign in to follow this  
ArtemPitov

[Решено] 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 не помогло, подскажите как сделать правильно

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

так опиши, как решил.

Share this post


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>

Share this post


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 == нужному значению){
      ...
    }
???

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

Share this post


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

Share this post


Link to post
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.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   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.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.