Click here to Skip to main content
15,879,348 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi all!

I'm new here, and I have a question.

I can populate a Flex dataGrid with a PHP function through ZendAMF using this MXML in Flex:
XML
<mx:DataGrid x="5.684342E-14" y="0" width="100%" height="100%" editable="false" id="browsegrid" styleName="usermapgrid" dataProvider="{amfcall.getItems.lastResult}" creationComplete="amfcall.getItems()" fontFamily="Verdana" itemClick="itemClickEvent();">


But as soon as I try to populate it with the same return type from a function that requires a variable to be passed, it fails to load the info, but doesn't show an error.

Here is the MXML of the problem:

MSIL
<mx:DataGrid x="0" y="0" styleName="usermapgrid" height="100%" width="100%" dataProvider="{amfcall.searchItems(searchstring).lastResult}" creationComplete="amfcall.searchItems(searchstring)">


And the corresponding PHP function:

PHP
public function searchItems($search){
    $result=mysql_query("SELECT * FROM tbl_items WHERE item_name OR item_tags LIKE '%$search%'");
    return $result;
}



The PHP is returning properly when I test without Flex.

(I'm using Flex SDK 3.2)

Thanks for any help X| !
Posted

1 solution

My knowledge of Flex is limited, so please forgive me, but doesn't PHP send information to Flex via XML, rather than just the result variable?

PHP
<?php
public function searchItems( $search )
{
        // Prevent Sql Injection attacks by escaping the string.
        $search = mysql_real_escape_string( $search );

        $result = mysql_query( "SELECT * FROM tbl_items WHERE item_name OR item_tags LIKE '%$search%'" );
    
	echo '<items>';
	
	while ( $row = mysql_fetch_array( $result ) )
	{
		echo '<row>';
		echo '	<columnnumber1>' . $row[ 0 ] . '</columnnumber1>';
		echo '	<columnnumber2>' . $row[ 1 ] . '</columnnumber2>';
		echo '</row>';
	}
	
	echo '</items>';
}
?>
XML
<mx:DataGrid x="0" y="0" styleName="usermapgrid" height="100%" width="100%" id="datagrid" dataProvider="{amfcall.searchItems(searchstring).lastResult.items.row}" >
    <mx:columns>
        <mx:DataGridColumn headerText="Column 1" dataField="columnnumber1" visible="true"/>
        <mx:DataGridColumn headerText="Column 2" dataField="columnnumber2" visible="true"/>
    </mx:columns>
</mx:DataGrid>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900