Почему мой мульти-массив JavaScript не может передать данные ajax?

0
var model = new Array();

function saveItem(id){ 

   var title = $("#inputTitle_"+id).val();

   var url   = $("#inputPicurl_"+id).val();

   var content = $("#content-editor-"+id).html();

   model[id] = new Array();

   model[id]['inputTitle'] = $("#inputTitle_"+id).val();

   model[id]['inputPicurl'] = $("#inputPicurl_"+id).val();

   model[id]['author'] = $("#author_"+id).val();

   model[id]['content'] = $("#content-editor-"+id).html();

   $("#title_"+id).text(model[id]['inputTitle']); 

   console.log(model);
}

 $("#submit_form").click(function(){

       $.ajax({
        url:'materials/addpics',
        type:'post',
        dataType:'json',
        data:model,
        traditional:'true',
        success:function(data){
          console.log(data)
        }
       });
    });

при запуске saveItem() консольный журнал представляет собой массив [], но данные с именем model в ajax равны NULL?

  • 4
    Вы понимаете, что в javascript нет такого понятия, как ассоциативные массивы, и что вы должны использовать объект (что, вероятно, в любом случае и сейчас)
  • 0
    попробуйте вызвать saveItem (id) перед выполнением запроса ajax
Показать ещё 1 комментарий
Теги:
arrays

1 ответ

1

"когда saveItem() запущен,..." saveItem никогда не запускается. Вы определили функцию, но вы ее не вызывали нигде в своем коде. Вы, вероятно, хотели, чтобы это был обработчик успеха, а не обработчик, который у вас есть, только data журналов. (За исключением того, что аргумент saveItem, похоже, не соответствует аргументу, предоставленному обработчику.)

  • 0
    «когда saveItem () запускается, консольный журнал представляет собой массив []», звучит так, будто функция где-то вызывается.
  • 0
    В обработчике успеха также есть console.log .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню