Что не так с этой функцией? .each связанные - PullRequest
2 голосов
/ 08 апреля 2010

Когда я раскомментирую предупреждение, данные там ... как:

{ 
      'Huishoudelijke hulp': 'Huishoudelijke hulp', 
      'Verpleging thuis': 'Verpleging thuis',
      'Verzorging thuis': 'Verzorging thuis',
      '24 uurs zorg': '24 uurs zorg',
      'Ondersteunende begeleiding': 'Ondersteunende begeleiding',
    }   

Но вместо того, чтобы заполнять ключ и значение, он берет всю переменную и начинает создавать пару ключ и значение для каждого символа.

Вы можете увидеть это в действии здесь: http://www.zorgzuster -zeeland.nl / сайт / статический / calendar_test.php

создайте задачу в календаре, а затем попробуйте отредактировать задачу, щелкнув по ней. Он должен правильно заполнить выпадающее поле.

Когда я создаю статическую переменную с теми же значениями, выпадающий список работает.

статическая переменная

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(zvmlist) {
        //alert("Data Loaded: " + zvmlist);

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

2 голосов
/ 08 апреля 2010

Ваш сервер отвечает Content-Type: text/html вместо application/json, поэтому jQuery не оценивает ваш объект. Вы можете указать тип контента:

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

Но я бы порекомендовал вам исправить сценарий на стороне сервера для отправки правильного типа контента, и jquery автоматически распознает формат json и оценит ответ сервера.

0 голосов
/ 08 апреля 2010

Дэвид Мердок предоставил «хитрость». Вот так теперь выглядит моя функция, и она работает как шарм.

$.ajax({
        "url":"get_zorgvormen.php",
        "dataType":"json",
        "type":"get",
        "success":function(zvmlist){

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

            });
        },
        "error":function(msg){
            alert(msg);
        }
    });
0 голосов
/ 08 апреля 2010

попробуйте это:

$.ajax({
    "url":"get_zorgvormen.php",
    "dataType":"json",
    "type":"get",
    "success":function(zvmlist){
        // should alert [Object object] or something similar
        alert(zvmlist);
    },
    "error":function(msg){
        alert(msg);
    }
});
0 голосов
/ 08 апреля 2010

Вы не говорите Jquery ожидать формат JSON.

Из документации:

jQuery.get( url, [ data ], [ callback(data, textStatus, XMLHttpRequest) ], [ dataType ] )

urlA string containing the URL to which the request is sent.

dataA map or string that is sent to the server with the request.

callback(data, textStatus, XMLHttpRequest)A callback function that is executed if the request succeeds.

dataTypeThe type of data expected from the server.

источник

Попробуйте указать, что вы ожидаете Json:

$.get('get_zorgvormen.php', function(zvmlist) {
        //alert("Data Loaded: " + zvmlist);

            $.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')); 

            }); 

        }, 'json');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...