function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
prashant yadav 112prashant yadav 112 

lightning aura component

Hi Everyone,can u plz tell me why i m getting this error..

(This page has an error. You might just need to refresh it. Action failed: c:ParentComponent$controller$handleComEvent [searchparam is not defined] Failing descriptor: {c:ParentComponent$controller$handleComEvent}     )

there are 3 components...
#######components.....
(1)........AirflyComponent
<aura:component>
   <div class="slds-p-around_x-small">
    <lightning:card> 
    <div class="slds-p-around_medium">
<lightning:select name="select1" label="Adults" required="true" >  
        <option value="">choose one...</option>
        <option value="1">one</option>
        <option value="2">two</option>
        <option value="3">three</option>
    </lightning:select>
    <lightning:select name="select2" label="Class" required="true" >  
        <option value="">choose one...</option>
        <option value="1">Economy</option>
        <option value="2">Premium Economy </option>
        <option value="3">Business</option>
    
    </lightning:select>
        <lightning:input type="date" name="input1" label="Enter a date" />
        </div>
       </lightning:card>
       </div>
</aura:component>
(2)........parent Component
<aura:component 
                implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" 
                access="global"
                Controller="AirFlyController">
                
    
    <aura:handler name="ChildEvent" event="c:AirportEvent" action="{!c.handleComEvent}"/>
    
    
    <c:ChildComponent/>
    
</aura:component>
(3).........child Component
<aura:component >
    <aura:registerEvent name="ChildEvent" type="c:AirportEvent"/>
    <div class="slds-align_absolute-center" style="height:2rem">
        <h1>Place</h1>
    </div>
    <lightning:card> 
        <div class="slds-m-around_x-small">
            <p>FROM</p>
            
            <lightning:input
                             name="enter-search"
                             label="From"  
                             type="search"
                             variant="label-hidden"
                             onchange="{!c.dosearch}"
                             aura:id="SearchInput"
                             />
            
        </div>
        
    </lightning:card>
</aura:component>
#######Controller.............
Parent Controller.......
({
    handleComEvent : function(component, event, helper) {
        var searchParam=event.getParam('searchText');
        var action=component.get('c.searchAirport');
        action.setParams({
            searchparam:searchparam
        });
        action.setCallback(this, function(response){
            var state=response.getState();
            if(state==='SUCCESS'){
                var responseValue=response.getReturnValue();
                console.log('responseValue',responseValue);
            }else{
                console.log(response.getError());
                
            }
        });
        $A.enqueueAction(action);
    }
})
child Controller.......
({
    dosearch : function(component, event, helper) {
        var componentEvent=component.getEvent('ChildEvent');
        var searchparam=component.find('SearchInput').get('v.value');
        componentEvent.setParams({
            searchText : searchparam
        });
        componentEvent.fire();  
    }
})
#######Event.............
<aura:event type="COMPONENT" description="Event template" >
    <aura:attribute name="searchText" type="String"/>
</aura:event>
#######Apex.............
public class AirFlyController {
   @AuraEnabled
    public static List<sObject> searchAirport(String searchparam)
    {
        String Likeparam = '%' +searchparam+ '%';
        String Query ='select Id,Name,City_Served__c from Airport__c Where Name Like :Likeparam';
        List<sObject> sObjectList = Database.query(Query);
        
        
        return sObjectList;
    }
}

Suraj Tripathi 47Suraj Tripathi 47

Hi Prashant,

Here you have used

 componentEvent.setParams({
            searchText : searchparam
        });


 

 @AuraEnabled
    public static List<sObject> searchAirport(String searchparam)

this both should be same name,


change it by:

public class AirFlyController {
   @AuraEnabled
    public static List<sObject> searchAirport(String searchText )
    {
        String Likeparam = '%' +searchText + '%';
        String Query ='select Id,Name,City_Served__c from Airport__c Where Name Like :Likeparam';
        List<sObject> sObjectList = Database.query(Query);
        
        
        return sObjectList;
    }
}


And Please mark it as Best Answer if it helps.
Thanks

prashant yadav 112prashant yadav 112
searchText  is event attribute...i am getting same error..