gpt4 book ai didi

php - 从 AJAX JSON 结果数据填充选择列表

转载 作者:行者123 更新时间:2023-11-30 13:20:59 25 4
gpt4 key购买 nike

你好 stackoverflow 开发者,首先,很抱歉,如果我找不到解决方案,但我已经尝试了一段时间了。我不确定我的方法是否是最好的方法,因此,如果有 AJAX 和/JSON 的替代方法,请随时提出建议。

我正在创建一个旅游指南网站,其中注册用户将根据地区和州包括他们的度假村、餐馆和旅游景点。我正在使用 Joomla!和 Seblod(使用一些自定义的 PHP、MySQL、Javascript 和 AJAX)。由于我不想手动创建 27 个动态选择,我一直在尝试使用 PHP/AJAX/JSON/JQuery 选择注册海滩列表(必须与度假村和旅游景点相关)。

除了填充海滩列表外,一切正常,我不知道问题出在哪里。我尝试了多种方法来附加、创建或添加选项,但没有任何反应。PHP/JSON 结果是:

`    [{"id":"17","title":"Porto+de+Galinhas"},{"id":"18","title":"Serrambi"},{"id":"19","title":"Tamandar%E9"}]`

这是这个 PHP 脚本的结果:

`    if($_GET['q'] == 'beaches'){        $praiaSQL = sprintf("SELECT * FROM vp_content AS c LEFT JOIN vp_cck_store_item_content AS v ON c.id = v.id WHERE c.catid = 10 AND v.cck = 'praia' AND v.venue_state = '%s' ORDER BY c.title ASC;", $_GET['s']);        $query = mysqli_query($connection, $praiaSQL);        $praia = array();        while($results = mysqli_fetch_assoc($query)){            array_push($praia, array('id' => $results['id'], 'title' => urlencode($results['title'])));        }        echo json_encode($praia);    }`

我还需要一个解决方案来处理重音字符。我在这里尝试 urlencode 并在 JQuery 中解码,但可能是问题所在。当我将其保留为原始数据时,当有重音字符时,结果项为空。

这是处理结果的相关 JQuery(其中 x = 选择和 u = 获取 AJAX JSON 结果的 URL - 我已经评论了代码中的问题所在):

`    function setBeachList(x,u){            var theDiv = "#cck1r_" + x;            var theSelect = "#" + x;            $j(theSelect).children("option:not(:first)").remove();            $j.ajax({                url: u,                contentType: "application/json;charset=UTF-8",                success: function(data){                    if(data.length){                         /****                           This is where I'm stuck, as I can't find a way to make sure the                            data is actually being treated/handled.                           I've tried alerts and all sorts of other options to populate the                           select.                           I know it's being called because the before: and after: functions                            are working.                         *****/                        /*                        $j.each(data, function(k, v){                            var o = new Option();                            var newTitle = urldecode(v.title);                            $j(o).html(newTitle).val(v.id);                            $j(theSelect).append(o);                        });                        */                        var htm = '';                        for (var i = 0; i '+urldecode(data[i].title)+'';                        }                        $j(theSelect).html(htm);                    }                },                beforeSend: function(){                    $j(theDiv).hide();                },                complete: function(){                  $j(theDiv).show();                  },                dataType: 'json',            });        }`

感谢您花时间和耐心等待,我不是这方面的专家(不完全是新手,但接近...)。

最佳答案

urldecode 不是 javascript 函数,您可以使用 decodeURIComponent 代替它。

当你改变它时它会工作,

http://jsfiddle.net/MzMPK/1/

更新:

我认为你的问题是关于尝试对重音字符进行编码,如果你的所有编码都设置为 UTF-8,它应该可以在不对它们进行编码的情况下工作。

关于php - 从 AJAX JSON 结果数据填充选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10268513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com