2015-11-30 7 views
3

Я новичок в FW1. У меня есть основы, но всякий раз, когда я пытаюсь заставить его работать в некоторых других библиотеках, это боль. Его трудно понять, что происходит не так.Данные формы в Fw/1 (Coldfusion) с использованием AJAX

Я хочу опубликовать данные формы в newServer.cfm в функции контроллера в main.cfc с помощью AJAX и jQuery (submitForm.js). Функция контроллера отправляет данные в службу (submit.cfc), которая отправляет данные в DAO (submit.cfc) для вставки в базу данных. Затем возвращает статус, если это удалось или нет.

Папка Strucuture

Folder Structure

submitForm.js

$(document).ready(function() { 
    $("#submitForm").submit(function(){ 
     dataString = $("#submitForm").serialize(); 
     $.ajax({ 
     type: "POST", 
     url: "index.cfm?action=main.submit", 
     dataType: "json", 
     data: dataString, 
     success: function(response) { 

      $("#result").html(response); 

     }, 
       error: function(xhr, status, e) { 
        $("#result").html(status); 
       } 

     }); 

    }); 
}); 

main.cfc (контроллер)

<cfcomponent accessors="true" output="false"> 

    <cfproperty name="submitService"> 

    <cfscript> 

     function init(fw) { 
      variables.fw = fw; 
      return this; 
     } 

      public function submit(rc){ 
      json = deserializeJson(rc); 
      rc.status = submitService.submitForm(json); 
      } 

    </cfscript> 

</cfcomponent> 

submit.cfc (Service)

<cfcomponent accessors="true"> 

    <cfproperty name="submitDAO"> 

    <cffunction name="submitForm" returnType="boolean" access="public" output="false" hint="I return a list of blog entries"> 
     <cfargument name="json" type="struct" required="true" hint="" displayname="rc" /> 

     <cfset status = ""> 
     <cfset status = submitDAO.submitForm(json)> 
     <cfreturn status> 

    </cffunction> 

</cfcomponent> 

Просто для проверки я возвращал логическое значение из DAO.

submit.cfc (ДАО)

<cfcomponent accessors="true"> 

    <cffunction name="init" hint="I return an instance of myself"> 
     <cfreturn this> 
    </cffunction> 

    <cffunction name="submitForm" returntype="boolean" hint="I return a list of blog entries"> 
     <cfargument name="json" type="struct" required="true" hint="" displayname="rc" /> 
     <cfset var status = true> 
     <cfreturn status> 

    </cffunction> 

</cfcomponent> 

Данные формы их размещения, но после этого нет никакого ответа. Firebug показывает ошибку в JQuery строке 8630:

xhr.send(options.hasContent && options.data || null); 

Я попытался изменить URL в Ajax функции не «Контроллеры/main.cfc метод = представить?», Но до сих пор не увенчались успехом.

Firebug ошибка консоли: enter image description here

+0

Шаг 1 - локализовать проблему. Можете ли вы вызвать эти функции без использования ajax? –

+0

Да. Если я просто использую coldfusion, я могу без проблем справиться с rc. – Soobax

+0

Помогает ли это? http://stackoverflow.com/questions/18448717/how-do-retret-json-from-an-action-in-fw-1 (Отказ от ответственности это был мой вопрос) –

ответ

1

я, наконец, нашел решение. В моей программе было много ошибок. Я опубликую его, чтобы, если кто-то сталкивается с подобными проблемами, они могут ссылаться на код. Я буду включать основные изменения в комментарии.

submitForm.js

$(document).ready(function() { 
    $('#submitForm').submit(function(event){ 
     var dataString = $('#submitForm').serialize(); 
     $.ajax({ 
     type: 'POST', 
     url: 'index.cfm?action=main.submit', 
     data: dataString, 
     dataType: 'json' 
     }) 
     .done(function(response){ 

      console.log(response); 

     }) 
     .fail(function(response) { 

      console.log(response); 

     }); 

    //I didnt prevent the default event from firing 
    event.preventDefault(); 

    }); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^