jQWidgets Forums
jQuery UI Widgets › Forums › Lists › DropDownList › Binding DropDownList to jsonp
Tagged: dropdown list, DropDownList, jqwidgets
This topic contains 2 replies, has 2 voices, and was last updated by edwardw 11 years, 10 months ago.
-
Author
-
Hi Peter
I looked at the documentation and the samples and I’m still having a problem. My dropdownlist populates fine when I bind with a json object. I’d like to use the same select statement for all of my lookup tables, so I’d like to pass the table name as a variable in jsonp. Here is my code:
var sampletypessource =
{
datatype: “jsonp”,
datafields: [
{ name: ‘label’},
{ name: ‘value’}
],
url: ‘dropdownlistdata.php’,
data: {
tablename: $tname
}
};
var sampletypeAdapter = new $.jqx.dataAdapter(sampletypessource,
{
formatData: function (data) {
return data;
}
}
);The code for the database lookup file is:
$tname = $_GET[‘tname’];
$query = ‘SELECT * FROM ‘ ;
$query .= $tname;
$from = 0;
$to = 30;
$query .= ” LIMIT “.$from.”,”.$to;
$result = mysql_query($query) or die(“SQL Error 1: ” . mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$sampletypes[] = array(
‘label’ => $row[‘label’],
‘value’ => $row[‘value’]
);
}
echo jsonp_encode($sampletypes);Finally the markup for the dropdownlist column in my jqxgrid is:
{ text: ‘Type’, datafield: ‘sample_type’, columntype: ‘dropdownlist’, width: 65, selectedindex: 0,
createeditor: function (row, value, editor) {
editor.jqxDropDownList({ source: sampletypeAdapter, displayMember: ‘label’, valueMember: ‘value’ });
}
},Hi,
Please find below a sample which illustrates how to bind jqxDropDownList to JSONP Data Source:
<!DOCTYPE html><html lang="en"><head> <title id='Description'>In this example the ComboBox is bound to a Remote Data.</title> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <script type="text/javascript" src="../../scripts/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdropdownlist.js"></script> <script type="text/javascript" src="../../scripts/gettheme.js"></script> <script type="text/javascript"> $(document).ready(function () { var theme = getDemoTheme(); // prepare the data var source = { datatype: "jsonp", datafields: [ { name: 'countryName' }, { name: 'name' }, { name: 'population', type: 'float' }, { name: 'continentCode' } ], url: "http://ws.geonames.org/searchJSON", data: { featureClass: "P", style: "full", maxRows: 50 } }; var dataAdapter = new $.jqx.dataAdapter(source); $("#jqxdropdownlist").jqxDropDownList( { width: 200, height: 25, source: dataAdapter, theme: theme, selectedIndex: 0, displayMember: "countryName", valueMember: "name" }); $("#jqxdropdownlist").on('select', function (event) { if (event.args) { var item = event.args.item; if (item) { var valueelement = $("<div></div>"); valueelement.text("Value: " + item.value); var labelelement = $("<div></div>"); labelelement.text("Label: " + item.label); $("#selectionlog").children().remove(); $("#selectionlog").append(labelelement); $("#selectionlog").append(valueelement); } } }); }); </script></head><body class='default'> <div id='jqxWidget' style="font-size: 13px; font-family: Verdana; float: left;"> <div id="jqxdropdownlist"></div> <div id="selectionlog"></div> </div></body></html>
Hope this helps.
Best Regards,
Peter StoevjQWidgets Team
http://www.jqwidgets.com/I think I have it working. Thank you Peter
-
AuthorPosts
You must be logged in to reply to this topic.