我有一个选择表单,我显示数据库中的数据,每当我选择一个值,我想将它传递给javascript,但它将选定的值传递给javascript,当我运行它时,它显示window.location ='?行动= 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();
}
});
});
});
答案 0 :(得分:0)
var supplier_id=$("#supplierselect"+ID).val();
为undefined
,因为它永远不会与您的<option>
元素匹配,原因如下:
id
元素分配任何<option>
(例如,<option id="myid">...</option>
)"#supplierselect"+ID
)需要一个类似于id="supplierselectmyid
的值,例如ID == "myid"
.val()
或<select>
元素上调用<option>
将返回分配给所选选项的value
属性的值,而不是{{1}内的文本节点}} 将<option></option>
属性设置为value
或尝试$row['supplier_id'];
答案 1 :(得分:-1)
您的代码存在的问题是您没有设置<option>
标记的ID。选择id
是:
#supplierselectsupplierselect
。
没有包含id
的对象。你需要做的是使用:
$("#supplierselect").val();
。