У меня есть выбранная форма, и я показываю данные из базы данных. Всякий раз, когда я выбираю значение, я хочу передать его 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();
}
});
});
});
var supplier_id=$("#supplierselect"+ID).val();
не undefined
поскольку оно никогда не соответствует ни одному из ваших элементов <option>
по нескольким причинам:
id
вашим элементам <option>
(например, <option id="myid">...</option>
)"#supplierselect"+ID
) ожидает значение, которое выглядит как id="supplierselectmyid
если, например, ID == "myid"
.val()
для ваших элементов <select>
или <option>
возвращает вам значение, присвоенное выбранному атрибуту value
параметра, а не текстовому узлу внутри <option></option>
Либо установите атрибут value
в $row['supplier_id'];
или попробуйте var supplier_id = $(this.options[this.selectedIndex]).text();
Проблема с вашим кодом заключается в том, что вы не установили идентификатор <option>
. Выбрав id
:
#supplierselectsupplierselect
.
Нет объекта, содержащего этот id
. Что вам нужно сделать, это использовать:
$("#supplierselect").val();
,
$("#supplierselect").val();
вернет 1
, а не значение $row['supplier_id']
.
value
не требуется в <option>
так как его static. Если это не передано, то получается значение $row['supplier_id']
.