2015-01-15 85 views
0

如何將所有值從表單發佈到將表單值插入數據庫的sql適配器?將表單值發佈到SQL adaper Worklight V6

  1. 我有一個onclick事件

  2. 我有一個適配器設置有一個過程來addUserInfo一種形式:

    function addUserInfo(firstname, lastname, email, state, province, zippostal, phonenumber, streetnamenumber, city) { 
        return WL.Server.invokeSQLStatement({ 
         preparedStatement : addStatement, 
         parameters : [firstname, lastname, email, state, province, zippostal, phonenumber, streetnamenumber, city] 
        }); 
    } 
    

我能得到一些建議/示例如何連接兩者?

回答

0

以下的答案提供了一個終端到終端的場景插入由HTML和到數據庫中獲得的值:https://stackoverflow.com/a/25164028/1530814


您需要從HTML獲取輸入並使用它作爲WL.client.invokeProcedure的參數:

function loadFeeds1(){ 
    var invocationData = { 
     adapter:"car2", 
     procedure:"getuser", 
     parameters:[$('#carnum').val(),$('#details').val()] 
    }; 

    WL.Server.invokeProcedure(invocationData,{ 
     onSuccess :loadFeedsSuccess1, 
     onFailure :loadFeedsFailure1, 
    }); 
} 

HTML:

<h1>Test Insert Into Database</h1> 
<input type="text" id="value1" placeholder="value1"/><br/> 
<input type="text" id="value2" placeholder="value2"/><br/> 
<input type="button" value="Insert values to database" onclick="insertValuesToDB();"/> 

main.js:

function insertValuesToDB() { 
    var invocationData = { 
     adapter: 'insertValuesAdapter', 
     procedure: 'insertValuesProcedure', 
     parameters: [$('#value1').val(), $('#value2').val()] 
    }; 

    WL.Client.invokeProcedure(invocationData, {onSuccess: insertSuccess, onFailure: insertFailure}); 
} 

function insertSuccess() { 
    alert("success"); 
} 

function insertFailure() { 
    alert("failure"); 
} 

適配器XML:

... 
... 
<connectivity> 
    <connectionPolicy xsi:type="sql:SQLConnectionPolicy"> 
     <dataSourceDefinition> 
      <driverClass>com.mysql.jdbc.Driver</driverClass> 
      <url>jdbc:mysql://localhost:3306/worklight_training</url> 
      <user>Worklight</user> 
      <password>Worklight</password> 
     </dataSourceDefinition> 
    </connectionPolicy> 
    <loadConstraints maxConcurrentConnectionsPerNode="5" /> 
</connectivity> 

<procedure name="insertValuesProcedure"/> 
... 
... 

適配器實現:

var insertValuesProcedureStatement = WL.Server.createSQLStatement("INSERT INTO users(userId, firstName, lastName, password) VALUES (?,?, 'someLastName', 'somePassword')"); 

function insertValuesProcedure(value1,value2) { 
    return WL.Server.invokeSQLStatement({ 
     preparedStatement : insertValuesProcedureStatement, 
     parameters : [value1,value2] 
    }); 
} 
+0

謝謝你這個例子,但我不確定我知道insertValuesToDB()知道如何將這些值發佈到具有DB的遠程服務器。你能解釋一下嗎? – Spindoctor 2015-01-15 16:11:06

+0

在編寫代碼之前,請閱讀IBM在開發人員中心提供的教程。該函數調用將數據發送到後端的適配器請求,在後端運行SQL代碼以插入值。去閱讀適配器。 – 2015-01-15 16:14:56

+0

謝謝。我打勾綠色。 – Spindoctor 2015-01-15 16:18:49