0

ここに私のコントローラクラスがあります:

global class MyJSController {
    public static String objj { get; set; }

    @RemoteAction
    public static String getObject_name(){
        return objj;
    }
    @RemoteAction
    public static void setObject_name(String s){
        objj=s;
    }

    public String accountName { get; set; }

    public static Account account { get; set; }

    public static List<Order__c> order{get;set;}

    public static List<Units__C>unit{get;set;}

    public static List<Widget__c> widget{get;set;}

    public MyJSController() { 
         setObject_name('Order');
    } // empty constructor


    @RemoteAction
    global static Account getAccount(String accountName) {
        account = [SELECT id, name, phone, type, numberofemployees
                   FROM Account WHERE name = :accountName];
        return account;
    }


    @RemoteAction
    global static Order__c[] getOrder(){
        return ([SELECT id,Name,Date__c,Inbound_Orders__c,Outbound_Orders__c from Order__c]);
    }

    @RemoteAction
    global static List<Units__c> getUnits(){
        unit=[SELECT id,Name,Date__c,Inbound_Units__c,Outbound_Units__c from Units__c];
        return unit;
    }

    @RemoteAction
    global static List<Widget__c> getWidget(){
        widget=[SELECT id,Name,Date__c,Inbound_Widgets__c,Outbound_Widgets__c from Widget__c];
        return widget;
    }
}

そして、ここに私のvisualforceページがあります:

<apex:page controller="MyJSController">
<apex:form >
<apex:selectList id="chooseColor" value="{!object_name}" size="1" onchange="initCharts()" >
<apex:selectOption itemValue="Order" itemLabel="Order"/>
<apex:selectOption itemValue="Unit" itemLabel="Unit"/>
<apex:selectOption itemValue="Widget" itemLabel="Widget"/>
</apex:selectList>
</apex:form>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">



        // Load the Visualization API and the piechart package.
        google.load('visualization', '1.0', {'packages':['corechart']});

        // Set a callback to run when the Google Visualization API is loaded.
        google.setOnLoadCallback(initCharts);

        function initCharts() {        
          // Following the usual Remoting syntax
          // [<namespace>.]<controller>.<method>([params...,] <callbackFunction>(result, event) {...}
          // namespace : abhinav
          // controller : GoogleChartsController
          // method : loadOpps



          MyJSController.getOrder(
                 function(result, event){ 
                     // load Column chart
                    var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');

         for(var i =0; i<result.length;i++){
                        var r = result[i];
                        data.addRow([r.Name,r.Inbound_Orders__c]); 
      }
      var data1=new google.visualization.DataTable();
      data1.addColumn('string','Topping');
      data1.addColumn('number','Slices');
      for(var i=0;i<result.length;i++)
      {
      var r=result[i];
      data1.addRow([r.Name,r.Inbound_Orders__c]);

      }

        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                       'width':400,
                       'height':300};

        // Instantiate and draw our chart, passing in some options.
        var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
        var chart1= new google.visualization.AreaChart(document.getElementById('chart_hh'));
        chart.draw(data, options);
        chart1.draw(data1,options);   }, {escape:true});


          MyJSController.getObject_name(function(event,result){
         alert('Hello'+result);
        document.getElementById('dddd').innerHTML=String.ValueOf(result);  },{escape:true});


          }


</script>
<div id="chart_div" ></div>
<div id="chart_hh"></div>
<div id="dddd">Helloojjfs</div>
</apex:page>

MyJSController.getObject_nameスクリプト タグ (スクリプト タグの最後の 4 行目)を呼び出すと、結果として[Object Object]. しかしString Order、コンストラクターで初期化する必要があります。どこが間違っているのか教えてください。この間違いを正すことができますか?

4

1 に答える 1