Hi I wanted to mention as well that i am using phpamf3 by neoxic.

It is an extension for PhP in case you were wondering about the
code.

I don't think the problem i am experiencing is on the PhP side because in the 
response tab there is data and when I visit that link it shows json.

Any help is greatly appreciated.

thanks,
j.

Sent with Proton Mail secure email.

On Sunday, April 27th, 2025 at 10:19 AM, Jim McNamara 
<jmcnamara10...@proton.me> wrote:

> Hi-
> 
> I thought this looks pretty good but the data won't go in the list.
> 
> this is what php prints for raw data and its code looks like
> I hope you can give me a tip it passes it to the f12 console from PhP but
> doesn't populate the list.
> 
> a BIG thanks for any assistance,
> j.
> 
> 
> http://127.0.0.1:8000/test.php?param1=foo&param2=bar
> {"foo":"some_value","bar":"another_value"}
> 
> <?php
> 
> // Enable CORS headers
> header("Access-Control-Allow-Origin: *"); // Allow all origins, or set 
> specific origins like 'http://127.0.0.1'
> header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
> header("Access-Control-Allow-Headers: Content-Type, Authorization");
> header("Access-Control-Allow-Credentials: true");
> 
> 
> // Define the class (similar to your original example)
> class MyClass {
> 
> private $foo;
> private $bar;
> 
> public function __construct($foo, $bar) {
> $this->foo = $foo;
> 
> $this->bar = $bar;
> 
> }
> 
> public function toJson() {
> return json_encode([
> 'foo' => $this->foo,
> 
> 'bar' => $this->bar,
> 
> ]);
> }
> }
> 
> // Create an instance of MyClass
> $myClass = new MyClass('some_value', 'another_value');
> 
> // Send the object as a JSON response
> header('Content-Type: application/json');
> echo $myClass->toJson();
> 
> 
> 
> So far I have thus in actionscript: in f12 mode firefox
> http://127.0.0.1:8000/test.php?param1=foo&param2=bar
> 
> XHRGET
> http://127.0.0.1:8000/test.php?param1=foo&param2=bar
> [HTTP/1.1 200 OK 1ms]
> 
> 
> foo "some_value"
> bar "another_value"
> 
> 
> 
> 
> package testpkg {
> import org.apache.royale.core.UIBase;
> import org.apache.royale.html.elements.Button;
> import org.apache.royale.events.MouseEvent;
> import org.apache.royale.net.HTTPService;
> import org.apache.royale.net.events.ResultEvent;
> import org.apache.royale.net.events.FaultEvent; // Import FaultEvent for 
> error handling
> import org.apache.royale.jewel.List;
> import org.apache.royale.collections.ArrayList;
> import org.apache.royale.jewel.Alert; // Import Alert for showing messages
> import org.apache.royale.events.Event;
> import org.apache.royale.jewel.Grid;
> import org.apache.royale.jewel.GridCell;
> import org.apache.royale.html.elements.H3;
> import org.apache.royale.html.beads.layouts.Paddings;
> import org.apache.royale.jewel.Card;
> import org.apache.royale.jewel.supportClasses.card.CardHeader;
> import org.apache.royale.jewel.supportClasses.card.CardPrimaryContent;
> 
> 
> public class SqliteQuery extends UIBase {
> public var _listData:ArrayList= new ArrayList(["Blueberries", "Bananas", 
> "Lemons", "Oranges", "This is a long item render to try long texts"
> ]);;
> private var list:List = new List();
> 
> [Bindable]
> public function get listData():ArrayList {
> return _listData;
> }
> 
> public function set listData(value:ArrayList):void {
> _listData = value;
> }
> 
> public function SqliteQuery() {
> // Initialize listData as ArrayList
> super();
> var grid:Grid = new Grid();
> grid.gap = true;
> grid.itemsVerticalAlign = "itemsSameHeight";
> 
> var paddings:Paddings = new Paddings();
> paddings.paddingTop = 0;
> paddings.paddingLeft = 50;
> paddings.paddingRight = 50;
> paddings.paddingBottom = 50;
> grid.addBead(paddings);
> 
> var card:Card = new Card();
> var cardHeader:CardHeader = new CardHeader();
> var headerText:H3 = new H3();
> headerText.text = "Default";
> headerText.className = "primary-normal";
> cardHeader.addElement(headerText);
> card.addElement(cardHeader);
> 
> 
> var list:List = new List();
> list.id = "list1"; // Use `id` instead of `localId`
> list.width = 200;
> list.height = 300;
> list.selectedIndex = 2;
> list.dataProvider = listData;
> list.addEventListener("change", onChange);
> listData = new ArrayList();
> 
> // Apply a border style to the List
> list.className = "listBorderStyle"; // Link the CSS class to the List
> // Add the scrolling beads for horizontal and vertical scrolling
> //list.addBead(new HorizontalListScroll()); // For horizontal scrolling
> // list.addBead(new VerticalListScroll()); // For vertical scrolling
> 
> var cardPrimaryContent:CardPrimaryContent = new CardPrimaryContent();
> cardPrimaryContent.addElement(list);
> card.addElement(cardPrimaryContent);
> 
> var gridCell:GridCell = new GridCell();
> gridCell.desktopNumerator = 1;
> gridCell.desktopDenominator = 2;
> gridCell.tabletNumerator = 1;
> gridCell.tabletDenominator = 2;
> gridCell.phoneNumerator = 1;
> gridCell.phoneDenominator = 1;
> gridCell.addElement(card);
> grid.addElement(gridCell);
> 
> addElement(grid);
> }
> 
> public function getld():ArrayList {
> return listData;
> }
> 
> 
> 
> // Fetch data and populate listData
> public function fetchData():void {
> var service:HTTPService = new HTTPService();
> //service.method="POST";
> //service.url = "http://127.0.0.1:8000/test.php";;
> service.contentType = "application/json"; // For JSON requests
> service.url = "http://127.0.0.1:8000/test.php?param1=foo&param2=bar";;
> service.method = "GET"; // Use GET for query parameters
> 
> service.addEventListener(ResultEvent.RESULT, onResult);
> service.send();
> }
> 
> private function onResult(event:ResultEvent):void {
> // The response data is a JSON object with foo and bar properties
> var responseData:Object = event.data;
> 
> // Array to hold the new items to add to the List
> var items:Array = [];
> 
> // Loop through the response data (assuming it's an array of objects)
> for (var i:int = 0; i < responseData.length; i++) {
> var item:Object = responseData[i];
> 
> // Create a new object with the foo and bar properties
> items.push({foo: item.foo, bar: item.bar});
> }
> 
> // Now set the items array to the List's dataProvider
> // Use list.dataProvider directly, and make sure to use an ArrayList
> list.dataProvider = new ArrayList(items);
> 
> // Optional: Log the data to verify
> trace("List data populated:", list.dataProvider.source);
> }
> 
> private function onChange(event:Event):void {
> trace("Selected: " + event.target.selectedItem);
> }
> }
> }
> 
> 
> 
> 
> 
> 
> Sent with Proton Mail secure email.

Reply via email to