получить id выбранного option

Тема в разделе "Как сделать...", создана пользователем Denis_Pi, 29 сен 2013.

  1. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    Наваял код, необходимо получить id выбранного option Как?
    case"creategroup":

    Код:
    $sql_cat = $db->super_query("SELECT cat_id,cat_name FROM `".PREFIX."_communities_cats`",1);
                foreach($sql_cat as $row_cat){
                    $opt .= '<option onclick="$(\'#cats\').val('.$row_cat['cat_id'].');" id="'.$row_cat['cat_id'].'">'.$row_cat['cat_name'].'</option>';
                }
                die('
                <div style="padding:20px"><div class="videos_text">Название</div><input type="text" class="videos_input" id="title" maxlength="65" />
                <div class="videos_text">Категория</div><select id="catigories" class="inpst">
                '.$opt.'
                </select>
                <input type="hidden" id="cats" value="Здесь нужно получит id выбранного option">
                </div>
                ');
            break;
    - - - - .$sql_cat[]['cat_id']. - - - делаю так, не работает...=(
    Хелп ми плис!!!
     
    Последнее редактирование: 29 сен 2013
  2. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    359
    Симпатии:
    243
    А прописать для option нужное значение в value и "нормально" (из $_GET или $_POST) получать его не вариант?
    Код:
    $sql_cat[]['cat_id']
    не будет работать, т.к. обращение к $sql_cat[] без указания индекса предусматривает добавление элемента в массив

    p.s. выбранный option можно получить в браузере при помощи JS или JQuery.. если, конечно, он там нужен. Перейти по ссылке
     
  3. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    не не варик...

    а js -ом можно пишут, что так получить

    $('#catigories').change(function(){
    var text = $("#catigories option:selected").text();
    $("input.cats").val(text);
    });

    я пробовал не работает чего то...
     
  4. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    мля, должно же быть решение на php, пишу .$sql_cat[0]['cat_id']. - получает именно первый id -соответственно если .$sql_cat[1]['cat_id']. - то получает id второго оптиона? а как получить айди выбранного?
     
  5. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.645
    Симпатии:
    1.349
    Denis_Pi нравится это.
  6. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    Код:
    <script>window.onload = function() {
    $( "select" )
      .change(function () {
        var str = "";
        $( "select option:selected" ).each(function() {
          str += $( this ).text() + " ";
        });
        $( "div" ).text( str );
      })
      .change();
    };</script>
    вот такой скрипт получается...

    как его правильно захреначить в мой код?

    Код:
    $sql_cat = $db->super_query("SELECT cat_id,cat_name FROM `".PREFIX."_communities_cats`",1);
    foreach($sql_cat as $row_cat){
    $opt .= '<option onclick="$(\'#cats\').val('.$row_cat['cat_id'].');" id="'.$row_cat['cat_id'].'">'.$row_cat['cat_name'].'</option>';
    }
    die('
    <div style="padding:20px"><div class="videos_text">Название</div><input type="text" class="videos_input" id="title" maxlength="65" />
    <div class="videos_text">Категория</div><select id="catigories" class="inpst">
    '.$opt.'
    </select>
    <input type="hidden" id="cats" value="Здесь нужно получит id выбранного option">
    </div>
    ');
    break;
    вставляю так:

    Код:
    case"creategroup":
              
                $sql_cat = $db->super_query("SELECT cat_id,cat_name FROM `".PREFIX."_communities_cats`",1);
                foreach($sql_cat as $row_cat){
                    $opt .= '<option onclick="$(\'#cats\').val('.$row_cat['cat_id'].');" value="'.$row_cat['cat_id'].'" id="'.$row_cat['cat_id'].'">'.$row_cat['cat_name'].'</option>';
                }
                die('
                <div style="padding:20px"><div class="videos_text">Название</div><input type="text" class="videos_input" id="title" maxlength="65" />
                <div class="videos_text">Категория</div><select id="catigories" class="inpst">
                '.$opt.'
                </select>
    
                <input type="hidden" id="cats" name="cats" class="cats" value="">
                </div>
                <script>window.onload = function() {
    $( "select" )
      .change(function () {
        var str = "";
        $( "select option:selected" ).each(function() {
          str += $( this ).text() + " ";
        });
        $( "val" ).text( str );
      })
      .change();
    };</script>
                ');
            break;
    не получает значение
     
  7. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.645
    Симпатии:
    1.349
    где то пропущена кавычка или какой то знак. Смотри внимательнее

    value="'.text'">
     
  8. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    359
    Симпатии:
    243
    Код:
    $( "val" ).text( str );
    что должна сделать эта строчка?
    Если в cats засунуть надо, то заменить на
    Код:
    $('#cats').val(str);
    Если сделать alert(str) будет то что нужно?
    Ошибки JS есть какие-нибудь?
     
  9. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    вот когда пишу ему value="'.text'"> он даёт ошибку Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING on line 50

    - это вот эта строка
    '); break;

     
  10. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    если делаю так, тажа ситуация, что указал выше

    ошибок js нет