2013-03-22 95 views
4

如何通過jquery的值結果成爲visualforce代碼例如:jquery的輸出值傳遞給visualforce

我jQuery代碼是

$j('[id$=submit]').on("click", function(){ 
var output = [], $jselects = $j(".container .row .span6 #form-details select"), i; 
for (i=0; i < $jselects.length; i += 2) 
    output.push($jselects.eq(i).find("option:selected").text() + 
       ":" + $jselects.eq(i+1).find("option:selected").text()); 
}) 

當我點擊此id,就像b產生的輸出值: b,S:S,A:一個此值在可變stroed爲output

這裏我visualforce代碼

<apex:commandButton id="submit" action="{!myMethod}" value="Submit" styleClass="btn btn-primary" reRender="block"> 
    <apex:param name="myParam" value="output"/> 
</apex:commandButton> 

當我按ID submit,從jquery得到輸出值,它將被設置在output的位置<apex:param name="myParam" value="output"/>這一行。 在這裏生成輸出文本,但我需要知道如何發送該值<apex>代碼。

是否有可能......?

欣賞你的答案...

回答

0

您可以使用RemoteAction像這樣: in javascript do this:

Visualforce.remoting.Manager.invokeAction(
    '{!$RemoteAction.yourController.yourfunction}',your_data, 
      function(result, event){ 
       //the result of your apex code 
      } 
); 

在你心尖做到這一點:

@RemoteAction 
public static string yourfunction(String your_data) { 

    // do your stuff 
    return result; 

} 
+0

只是要指出,這不是一個ActionFunction,而是一個RemoteAction,在它們的實現中略有不同,但通過錯誤名稱調用它們可能會讓人困惑。 ActionFunctions是作爲Javascript函數公開的Apex操作。 RemoteActions是通過JavaScript界面​​公開的靜態頂點方法,因此可以通過JavaScript本地處理它們 – thegogz 2015-09-29 14:38:54

1

你有三個選擇

1)創建參數actionfunction。然後調用操作函數並將生成的字符串作爲參數傳遞,就像其他任何javascript函數一樣。

2)使用Javascript遠程處理。它可以讓你傳遞參數和方法調用。但它要求方法是靜態的。

3)使用隱藏的<apex:hiddeninput>字段。然後使用此輸入的javascript設置值作爲您的字符串。然後,這將通過任何常規的頂點帖子事件傳遞給控制器​​(apex:commandButton or apex:commandLink