1

VF ページで JS Remoting を使用して、コントローラーに 2 つの文字列を渡そうとしています。

onclickVF ページで、チェックボックスのイベント ハンドラーを使用して JavaScript メソッドを呼び出しています。

<apex:inputCheckbox value="{!part.selected}" disabled="{!IF(part.selected == true, true, false)}" onclick="getParamValues('{!part.contactId}','{!part.contactName}');">

ここにJavaScript関数があります:

function getParamValues(whoid, whoname) {
    CallReportControllerExtension.getWhoId(whoid);
    CallReportControllerExtension.getWhoName(whoname);
}

そして、ここにコントローラーの私のメソッドがあります:

@RemoteAction
public static String getWhoId(String id) {
    system.debug('*********************** we are inside the getWhoId method');
    paramWhoId = id;
    return paramWhoId;  
} 

@RemoteAction
public static String getWhoName(String name) {
    system.debug('*********************** we are inside the getWhoName method');
    paramWhoName = name;
    return paramWhoName;
}

私のデバッグでは、アクション メソッドは入力されません。

エラーの意味は何ですか? 文字列をコントローラーメソッドに渡すにはどうすればよいですか?

4

1 に答える 1

4

http://www.salesforce.com/us/developer/docs/pages/Content/pages_js_remoting_example.htm

上記のリンクで指摘されている単純な構文を次に示します。あなたの場合に感じる構文エラーです。

これを適切な構文で解決しましょう

function getParamValues(whoid, whoname) {

     Visualforce.remoting.Manager.invokeAction(
        '{!$RemoteAction.CallReportControllerExtension.getWhoId}',
        whoid, 
        function(result, event){
            if (event.status) {
                alert('RESULT WHOID',result);

            } 
        }, 
        {escape: true}
    );

     Visualforce.remoting.Manager.invokeAction(
        '{!$RemoteAction.CallReportControllerExtension.getWhoName}',
        whoname, 
        function(result, event){
            if (event.status) {
                alert('RESULT WHONAME',result);

            } 
        }, 
        {escape: true}
    );
}

実際、これらを組み合わせて List として送信し、List として返し、同じものを解析できます。

于 2013-09-11T05:03:15.263 に答える