![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) Call a JavaScript Function Returning an ArraySee more JavaScript ExamplesDemonstrates how to call a JavaScript function that returns an array.Note: This example requires Chilkat v11.4.0 or greater.
use chilkat(); $success = 0; # ---------------------------------------------------------------------------------- # The Javascript functions called in this example are shown at the bottom of this page. # ----------------------------------------------------------------------------------- $sbScript = chilkat::CkStringBuilder->new(); $success = $sbScript->LoadFile("js_function_returning_array.js","utf-8"); if ($success == 0) { print $sbScript->lastErrorText() . "\r\n"; exit; } $js = chilkat::CkJs->new(); $result = chilkat::CkJsonObject->new(); $result->put_EmitCompact(0); # Call Eval to add the function to the context's global object $success = $js->Eval($sbScript,$result); if ($success == 0) { # Examine the result for an exception. print $result->emit() . "\r\n"; # Also examine the LastErrorText. print $js->lastErrorText() . "\r\n"; exit; } # ------------------------------------------------------------------------------ # Call each function $funcCall = chilkat::CkJsonObject->new(); # Create JSON specifying the function name and arguments # The function has no arguments, so we only specify the name. $funcCall->UpdateString("name","getDays"); $success = $js->CallFunction($funcCall,$result); if ($success == 0) { # Examine the result for an exception. print $result->emit() . "\r\n"; # Also examine the LastErrorText. print $js->lastErrorText() . "\r\n"; exit; } print $result->emit() . "\r\n"; # Output: # { # "type": "array", # "value": [ # "Monday", # "Tuesday", # "Wednesday", # "Thursday", # "Friday" # ] # } # Access each array value.. $count = $result->SizeOfArray("value"); $i = 0; while ($i < $count) { $result->put_I($i); print $result->stringOf("value[i]") . "\r\n"; $i = $i + 1; } # ------------------------------------------------------------------------------ # Call the getRange(start,end) function $funcCall->Clear(); $funcCall->UpdateString("name","getRange"); $funcCall->UpdateInt("args[0]",14); $funcCall->UpdateInt("args[1]",21); $success = $js->CallFunction($funcCall,$result); print $result->emit() . "\r\n"; # Output: # { # "type": "array", # "value": [ # 14, # 15, # 16, # 17, # 18, # 19, # 20, # 21 # ] # } $count = $result->SizeOfArray("value"); $i = 0; while ($i < $count) { $result->put_I($i); print $result->IntOf("value[i]") . "\r\n"; $i = $i + 1; } # ------------------------------------------------------------------------------ # Call the getEmployees() function $funcCall->Clear(); $funcCall->UpdateString("name","getEmployees"); $success = $js->CallFunction($funcCall,$result); print $result->emit() . "\r\n"; # Output: # { # "type": "array", # "value": [ # { # "id": 101, # "name": "Alice", # "role": "Dev" # }, # { # "id": 102, # "name": "Bob", # "role": "Manager" # } # ] # } $count = $result->SizeOfArray("value"); $i = 0; while ($i < $count) { $result->put_I($i); print "name: " . $result->stringOf("value[i].name") . "\r\n"; print "role: " . $result->stringOf("value[i].role") . "\r\n"; print "id: " . $result->IntOf("value[i].id") . "\r\n"; print "" . "\r\n"; $i = $i + 1; }
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.