我从json格式的ajax调用中检索选择的一些选项。 我设置的代码用于显示select中的新选项(替换现有选项)如下:
success: function (data){
var $select = $('#dettaglio');
$select.html('');
$.each(data, function(key, val){
$select.append('<option id="' + val.id + '">' + val.text +'</option>');
})
}
虽然json是这样的:
[
{"id":"1","text":"J-Invest Spa"},
{"id":"2","text":"J-A Holding S.r.l."},
{"id":"3","text":"J-Invest Advisory & Servicing S.r.l."},
{"id":"4","text":"J-Invest Immobiliare e Consulenza S.r.l."}
]
运行此代码会导致错误,这种错误不容易理解:
TypeError:'操作数e中的无效'
... === n ||“function”!== n&amp;&amp;(0 === t ||“number”== typeof t&amp;&amp; t&gt; 0&amp;&amp; t-1 in e)} r = b(o); var _ = {} ...
jQuery抛出错误,但这对于查看我的代码错误无效。任何提示?
答案 0 :(得分:7)
是的,我从mysql获取一个数组并使用json_encode
对其进行编码。从服务器接收的数据始终为string
类型。您需要解析它以转换为JSON格式。你能试试吗?
success: function(data) {
data = JSON.parse(data);
或者,如果您使用的是旧IE,您也可以尝试:
success: function(data) {
data = $.parseJSON(data);
答案 1 :(得分:2)
最简单的方法是通过添加以下内容来改变PHP:
for (auto& base_ptr : B)
if (DerivedClass* p = dynamic_cast<DerivedClass *>(base_ptr))
B.push_back(p);
就是这样。 jQuery自动设置为检测返回数据的编码。如果您以后决定发送其他内容,则只需更改标题。
警告:在 ANY 输出之前,此功能必须是首先执行的功能之一。否则,它会给你带来错误。