2012-05-06 7 views
2

다음 코드가 작동합니다. 내가 할 일은 하나의 값을 받아들이는 것에서 객체의 배열을 받아들이는 것, 마치 1, "Item One"을 게시하는 대신 객체를 반복하고 1, "Item One"을 게시하는 것입니다. 2 "항목 두"등Ajax를 통해 여러 행을 게시하는 방법

!function($, window, undefined) { 
    var local = {}; 
    local.data = {}; 
    local.type= 'post', 
     local.dataType= 'json', 
     local.data.method = 'Save', 
     local.data.ItemNo = 1; 
     local.data.ItemName = 'Item One'; 

    var myPromise = $.ajax('Upload.cfc',local); 
    myPromise.done(function(result) { 
     console.log('success!'); 
    }); 

    myPromise.fail(function(A,B,C) { 
     $('body').append(A.responseText); 
     console.log(B); 
     console.log(C); 
    }); 
}(jQuery, window); 

그리고

<cfcomponent> 
<cffunction name="Save" access="remote"> 
    <cfargument name="ItemNo"> 
    <cfargument name="ItemName"> 
    <cfset var local = {}> 

    <cfquery datasource="#Application.Datasource#" username="#Application.Username#" password="#Application.Password#"> 
    INSERT INTO lru.Item(ItemNo,ItemName) VALUES 
    (<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.ItemNo#"> 
    ,<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.ItemName#" maxlength="10"> 
    ) 
    </cfquery> 
</cffunction> 
</cfcomponent> 

답변

1

index.cfm :

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
     $('#save').click(function(){ 
      $.ajax({ 
      url: 'add.cfc?method=addData&returnFormat=json', 
      type: "post", 
      data: { dataArray: [$('#test1').val(),$('#test2').val(),$('#test3').val() ] }, 
      dataType: 'json', 
      success: function(data){ 
       $('#result').html(data); 
      } 
      }); 
     }); 
     }); 
    </script> 
    </head> 
    <body> 
    <form name="sub" method="post"> 
     Test1: <input type="text" name="test1" id="test1" /><br /> 
     Test2: <input type="text" name="test2" id="test2" /><br /> 
     Test3: <input type="text" name="test3" id="test3" /><br /> 
     <button type="button" id="save" name="save">Save</button> 
    </form> 

    <div id="result" /> 

    </body> 

add.cfc :

<cfcomponent> 
    <cffunction name="addData" access="remote" returntype="string" > 
     <cfargument name="dataArray" type="array" /> 

     <cfset var result = "" /> 

     <cfloop array="#arguments.dataArray#" index="i" > 
      <cfset result = result & "R: " & i & ", " /> 
     </cfloop> 

     <cfreturn result /> 

    </cffunction> 
</cfcomponent> 

이 예제에서는 javascript에서 ColdFusion으로 배열을 전달한 다음 cfc에서 해당 배열을 루프 처리합니다.

+0

그게 전부입니까? 너무 쉬운 것 같습니다! 나는 그것을 지금 시험해 볼 예정이다! –

+0

"NetworkError : 500 Element DATAARRAY가 ARGUMENTS에서 정의되지 않았습니다. - http://www.phillipsenn.com/Matrix/JSON/Paul/add.cfc?method=addData&returnFormat=json" –

+0

음, 추가 할 수 있습니다. JSON.stringify를 문자열로 전달하지만 cfc에서 문자열을 분리해야합니다. 어느 쪽이 그렇게 나쁘지 않을 수도 있습니다. –

관련 문제