Как передать выбранные значения в JavaScript

0

У меня есть выбранная форма, и я показываю данные из базы данных. Всякий раз, когда я выбираю значение, я хочу передать его javascript, но он передает выбранное значение javascript, когда я запускаю его, он показывает window.location = '? Action = suppliernetwork & supplier_id = undefined.thanks

HTML

 <select name="supplierselect" id="supplierselect" style="margin:0px 0px 0px 0px;background-color:#C2FFC2;width:125px;"> 
        <option>--Select--</option> 
        <?php
   include(db.php)

    $sql=mysql_query("select * from supplier");

    while($row=mysql_fetch_array($sql))
    {
     ?>
        <option value="1"><?php echo $row['supplier_id']; ?></option>
        <?php } ?>


    </select>

Javascript

$(function() {  //  document.ready
    $("#supplierselect").on("change", function() {
        var ID=$(this).attr('id');
        var supplier_id=$("#supplierselect"+ID).val();
        $.ajax({
            url: "suppliernetwork/select.php",
            type: "POST",
            data: {
                supplierselect: $(this).val()
            },
            success: function(data) {
                $("#display").html(data);
               window.location = '?action=suppliernetwork&supplier_id='+supplier_id+'';
                $("#flash").hide();
            }
        });
    });
});
Теги:
select

2 ответа

0
Лучший ответ

var supplier_id=$("#supplierselect"+ID).val(); не undefined поскольку оно никогда не соответствует ни одному из ваших элементов <option> по нескольким причинам:

  1. Вы не присваиваете id вашим элементам <option> (например, <option id="myid">...</option>)
  2. Ваш оператор селектора ("#supplierselect"+ID) ожидает значение, которое выглядит как id="supplierselectmyid если, например, ID == "myid"
  3. Вызов .val() для ваших элементов <select> или <option> возвращает вам значение, присвоенное выбранному атрибуту value параметра, а не текстовому узлу внутри <option></option>

Либо установите атрибут value в $row['supplier_id']; или попробуйте var supplier_id = $(this.options[this.selectedIndex]).text();

  • 0
    Спасибо, бро, это исправлено ..............
-2

Проблема с вашим кодом заключается в том, что вы не установили идентификатор <option>. Выбрав id:

#supplierselectsupplierselect.

Нет объекта, содержащего этот id. Что вам нужно сделать, это использовать:

$("#supplierselect").val(); ,

  • 0
    Используя пример кода OP, $("#supplierselect").val(); вернет 1 , а не значение $row['supplier_id'] .
  • 0
    Атрибут value не требуется в <option> так как его static. Если это не передано, то получается значение $row['supplier_id'] .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню