我试图根据在先前的html选择对象上做出的选择,使html选项列表更新.我的
jquery在下面.这被正确的称呼.
var brandName = $("#Brand").val(); $.get("updateTypes.PHP?q="+brandName,function(data) { $("#Type").remove(); var typeData = JSON.parse(data); for (loop=0; loop < typeData.length; ++loop) { $("#Type").options.add(new Option(typeData[loop])); } });
由于我正在使用一个单例来与MysqL数据库进行接口,所以这个jquery函数调用一个名为updateTypes.PHP的’go-between’.PHP文件,它们如下所示:
include 'databaseInterface.PHP'; $brand = $_GET["q"]; $typesData = databaseInterface::getBrandTypes($brand); return $typesData;
$query = "SELECT psTypeName FROM types WHERE brands_psBrandName='$BrandName'"; $result = MysqLi_query($con,$query) or die ("Couldn't execute query. ".MysqLi_error($con)); $resultArray = array(); while ($row = MysqLi_fetch_assoc($result)) { extract($row); $resultArray[] = $psTypeName; } return json_encode($resultArray);
该网页正确地从jquery函数中删除现有的选项,但无法更新它们.当我解码jquery中的JSON数据时,似乎出错了.为什么会出错?用于更新选择对象的循环是否适合?
你可以使用$.getJSON,如果你期待一个json响应.您也可以使用$.each(),然后使用.append()到select标签.你可以在.each()中引用this.property.
原文链接:https://www.f2er.com/php/132427.html如下所示:
$.getJSON("updateTypes.PHP?q="+brandName,function(data) { $("#Type").remove(); $.each(data,function(){ $("#Type").append('<option value="'+ this.value +'">'+ this.name +'</option>') ) })
这将假设您的json响应类似于以下内容:
[{name:“foo”,value:“bar”},{name:“another”,value:“example”}]