0

我有一个选择表单,我显示来自数据库的数据,每当我选择一个值时,我想将它传递给 javascript,但它将选定的值传递给 javascript,当我运行它时它显示 window.location = '?action=suppliernetwork&supplier_id =未定义。谢谢

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();
            }
        });
    });
});
4

2 回答 2

0

var supplier_id=$("#supplierselect"+ID).val();undefined因为它从不匹配您的任何<option>元素,原因如下:

  1. 您没有id为您的<option>元素分配任何内容(例如,<option id="myid">...</option>
  2. 您的选择器语句 ( "#supplierselect"+ID) 需要一个类似于id="supplierselectmyidif 的值,例如,ID == "myid"
  3. 调用.val()您的<select><option>元素将返回分配给所选选项value属性的值,而不是内部的文本节点<option></option>

value属性设置为$row['supplier_id'];或尝试var supplier_id = $(this.options[this.selectedIndex]).text();

于 2013-09-24T11:44:25.627 回答
-1

您的代码的问题是您没有设置<option>标签的 id。通过选择id是:

#supplierselectsupplierselect.

没有包含那个的对象id。你需要做的是使用:

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

于 2013-09-24T11:45:29.610 回答