得到一个正在工作的静态var,现在需要得到不起作用的动态var

时间:2010-04-08 13:07:14

标签: jquery

我有这个变量:

 var zvmlist = { 
   'Huishoudelijke hulp': 'Huishoudelijke hulp', 
   'Verpleging thuis': 'Verpleging thuis',
   'Verzorging thuis': 'Verzorging thuis',
   '24 uurs zorg': '24 uurs zorg',
   'Ondersteunende begeleiding': 'Ondersteunende begeleiding',
 }; 

在函数中使用此var来创建下拉列表:

    $.each(zvmlist, function(key, value) { 
  var selected='';
  if(key==eventdata.title){var selected='selected' }
  $('<option value="'+key+'" '+selected+'>'+value+'</option>').appendTo($('#calendar_edit_entry_form_title')); 
  });

就像魅力一样。

现在我创建了一个从MySQL表中获取列表的函数:

 $.get('get_zorgvormen.php', function(data) {

    var zvmlist = '{'+data+'}';
    //alert(zvmlist);

  });

当我启用提醒功能时,它会显示var(array)

但我不会充当变数。

如何将此数据传递给我的.each函数?

(你可以在这里看到它:http://www.zorgzuster-zeeland.nl/site/static/calendar_test.php。)


 $.each(zvmlist, function(key, value) { 
        var selected='';
        if(key==eventdata.title){var selected='selected' }
        $('<option value="'+key+'" '+selected+'>'+value+'</option>').appendTo($('#calendar_edit_entry_form_title')); 
        });

当var zvmlist =当前

var zvmlist = { 
      'Huishoudelijke hulp': 'Huishoudelijke hulp', 
      'Verpleging thuis': 'Verpleging thuis',
      'Verzorging thuis': 'Verzorging thuis',
      '24 uurs zorg': '24 uurs zorg',
      'Ondersteunende begeleiding': 'Ondersteunende begeleiding',
    }; 

但我希望通过以下方式填充:

$.get('get_zorgvormen.php', function(data) {
      //data = {"key":"value"};
      var obj = {};
      obj[0] = data;
      var zvmlist = '{'+obj[0]+'}';
      alert(zvmlist);
    });

当我删除静态var时,应用程序会中断,并且不会填充下拉列表


我合并了两个函数,它有点工作,但是,下拉列表中填充了var中的每个字母。

<option value="1">1</option>
<option value="2">'</option>
<option value="3"> </option>
<option value="4">:</option>
<option value="5"> </option>
<option value="6">'</option>
<option value="7">H</option>
<option value="8">u</option>

等等

$.get('get_zorgvormen.php', function(data) {
      //data = {"key":"value"};
      var obj = {};
      obj[0] = data;
      var zvmlist = obj[0];  
     $.each(zvmlist, function(key, value) { 
        var selected='';
        if(key==eventdata.title){var selected='selected' }
        $('<option value="'+key+'" '+selected+'>'+value+'</option>').appendTo($('#calendar_edit_entry_form_title')); 
        });
     });

任何帮助都会受到欢迎

4 个答案:

答案 0 :(得分:0)

而不是

var zvmlist = '{'+data+'}';

尝试

var zvmlist = Eval('{' + data + '}');

善,

答案 1 :(得分:0)

我认为你必须评估该字符串,以便它变得有用。尝试:

var zvmlist = eval('{'+data+'}');

答案 2 :(得分:0)

您可以使用eval()函数解析JSON数据。

$.get('get_zorgvormen.php', function(data) { 
   return eval('({' + data + '})');
}); 

答案 3 :(得分:0)

不使用eval,您可以先创建一个对象文字,然后将其传递给zvmlist。

  $.get('get_zorgvormen.php', function(data) {
      //data = {"key":"value"};
      var obj = {};
      obj[0] = data;
      var zvmlist = obj[0];
      alert(zvmlist);
  });

没有经过测试,但有类似的事情。