如何使用jquery ajax .load function作为下拉列表?
这是我的PHP页面
<?
$query="SELECT Name FROM supplier";
$result=mysql_query($query);
?>
<select name="ddlSupplier">
<option>Supplier Name</option>
<? while($row=mysql_fetch_array($result)) { ?>
<option value><?=$row['Name']?></option>
<? } ?>
</select>
加载后如何获得价值?
$("#ddlSupplier").val()? this.val()?
我没有你称之为.load()
的标记,所以我将使用#placeholder
作为你将注入下拉列表的选择器:
$('#placeholder').load('yourphppage.php', function(html) {
$(this).find('select[name=ddlSupplier]').val();
});
请注意,回调是在 HTML 插入后调用的,因此您可以执行find()
。文档:
如果提供了"完整"回调,则在之后执行 已执行后处理和 HTML 插入。回调为 为 jQuery 集合中的每个元素触发一次,这是设置的 依次到每个 DOM 元素。
你应该
能够像你所说的那样得到它.val()
$(function () {
$("#ddlSupplier").on('change', function () {
var value = $(this).val();
});
});
几个问题:
首先在 PHP 中,您尝试通过ID
选择下拉列表,但您没有设置一个。所以这是添加的。此外,您实际上并没有为<option>
提供值,因此也添加了值。
<?
$query="SELECT Name FROM supplier";
$result=mysql_query($query);
?>
<select id="ddlSupplier" name="ddlSupplier">
<option>Supplier Name</option>
<? while($row=mysql_fetch_array($result)) { ?>
<option value="<?=$row['Name']?>"><?=$row['Name']?></option>
<? } ?>
</select>
最后,在 JS 中,您需要获取选择选项的值,而不是select
列表的值(因为select
没有值)。
$("#ddlSupplier option:selected").val()