php – 使用jquery和ajax更新选项列表

前端之家收集整理的这篇文章主要介绍了php – 使用jquery和ajax更新选项列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图根据在先前的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;

这在下面的单例中调用getBrandTypes函数

$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.

如下所示:

$.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”}]

原文链接:https://www.f2er.com/php/132427.html

猜你在找的PHP相关文章