pongz79
4 Oct 2007, 7:55 AM
Hello everyone.
I'm trying to do an example with a grid and i want to alert the data from the clicked row.
Anyone know how can i do that?
This is my code:
<?php
require('../../../xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
function populate($filter)
{
$objectResponse = new xajaxResponse();
$conn = mysql_connect("xxx", "xxx", "xxx");
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_advanced_forms', $conn);
$sql = "SELECT id from select1 WHERE value='$filter' LIMIT 0,1";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$sql2 = "SELECT * FROM select2 WHERE select1_id='$row[0]'";
if ($row[0] == 0) {
$objectResponse->call(disableSelectField);
}
else {
$objectResponse->call(enableSelectField);
$result = mysql_query($sql2);
while ($row = mysql_fetch_array($result)) {
$option = '<option value="' . $row['value'] . '">' . $row['value'] . '</option>';
$objectResponse->append("s2", "innerHTML", $option);
}
}
mysql_close($conn);
return $objectResponse;
}
$xajax->registerFunction("populate");
$xajax->processRequest();
$conn = mysql_connect("localhost", "root", "");
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_advanced_forms', $conn);
$result = mysql_query("SELECT * FROM select1");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" />
<script type="text/javascript" src="yui-utilities.js"></script>
<script type="text/javascript" src="ext-yui-adapter.js"></script>
<script type="text/javascript" src="ext-all.js"></script>
<script type="text/javascript" src="javascript.js"></script>
<title>Meu grid com toolbar</title>
<script type="text/javascript">
function clearSelectField(value, field)
{
var element = document.getElementById("s2");
while (element.firstChild) {
element.removeChild(element.firstChild);
}
xajax_populate(value);
}
function disableSelectField()
{
var element = document.getElementById("s2");
element.disabled = true;
}
function enableSelectField()
{
var element = document.getElementById("s2");
element.disabled = false;
}
</script>
</head>
<body>
<?php
$xajax->printJavascript('../../../xajax/');
?>
<form method="post">
<select id="s1" onChange="clearSelectField(this.value, s2);">
<option value="0">Select field</option>
<?php
while ($row = mysql_fetch_array($result)) {
print '<option value="' . $row['value'] . '">' . $row['value'] . '</option>';
}
?>
</select>
<p></p>
<select id="s2">
<option value="123">123</option>
</select>
</form>
<br />
<br />
<div id="grid-paging" style="border:1px solid #99bbe8;overflow: hidden; width: 450px; height: 300px;"></div>
</body>
</html>
Ext.onReady(function(){
var ds = new Ext.data.Store({
proxy: new Ext.data.ScriptTagProxy({
url: 'result.php'
}),
reader: new Ext.data.JsonReader({
root: 'results',
totalProperty: 'total',
id: 'id'
}, [
{name: 'id', mapping: 'id'},
{name: 'value', mapping: 'value'}
])
});
var cm = new Ext.grid.ColumnModel([{
id: 'id',
header: "Id",
dataIndex: 'id',
width: 50
},{
header: "Value",
dataIndex: 'value',
width: 50
}]);
var grid = new Ext.grid.Grid('grid-paging', {
ds: ds,
cm: cm,
trackMouseOver: true,
loadMask: true,
autoExpandColumn: 'id'
});
grid.on('click', update);
grid.render();
var gridHeader = grid.getView().getHeaderPanel(true);
var paging = new Ext.PagingToolbar(gridHeader, ds, {
pageSize: 15,
displayInfo: true,
displayMsg: 'Mostrando resultados {0} - {1} de {2}',
emptyMsg: "Nenhum resultado retornado"
});
var gridFooter = grid.getView().getFooterPanel(true);
var paging = new Ext.PagingToolbar(gridFooter, ds, {
pageSize: 15,
displayInfo: true,
displayMsg: 'Mostrando resultados {0} - {1} de {2}',
emptyMsg: "Nenhum resultado retornado"
});
ds.load({params:{start:0, limit:15}});
function update(grid_event)
{
Ext.Msg.alert('Ola', 'Eu fui activada por um click na grid');
// Here is where i want to alert the clicked data
}
});
<?php
include_once("dbconfig.inc.php");
include_once("JSON/JSON.php");
include_once("adodb/adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect($host, $user, $pwd, $mydb);
$rs=$db->Execute("SELECT `id` FROM `select1`");
$total=$rs->RecordCount();
$start=$_GET['start'];
$limit=$_GET['limit'];
$rs=$db->Execute("SELECT `id` , `value` FROM `select1` LIMIT $start , $limit");
while(!$rs->EOF){
$data[]=$rs->fields;
$rs->MoveNext();
}
$json = new Services_JSON();
echo $_GET['callback'].'({"total":'.$total.',"results":'.$json->encode($data).'})';
?>
Thanks.
Best reguards:
Tiago Oliveira
I'm trying to do an example with a grid and i want to alert the data from the clicked row.
Anyone know how can i do that?
This is my code:
<?php
require('../../../xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
function populate($filter)
{
$objectResponse = new xajaxResponse();
$conn = mysql_connect("xxx", "xxx", "xxx");
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_advanced_forms', $conn);
$sql = "SELECT id from select1 WHERE value='$filter' LIMIT 0,1";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$sql2 = "SELECT * FROM select2 WHERE select1_id='$row[0]'";
if ($row[0] == 0) {
$objectResponse->call(disableSelectField);
}
else {
$objectResponse->call(enableSelectField);
$result = mysql_query($sql2);
while ($row = mysql_fetch_array($result)) {
$option = '<option value="' . $row['value'] . '">' . $row['value'] . '</option>';
$objectResponse->append("s2", "innerHTML", $option);
}
}
mysql_close($conn);
return $objectResponse;
}
$xajax->registerFunction("populate");
$xajax->processRequest();
$conn = mysql_connect("localhost", "root", "");
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_advanced_forms', $conn);
$result = mysql_query("SELECT * FROM select1");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" />
<script type="text/javascript" src="yui-utilities.js"></script>
<script type="text/javascript" src="ext-yui-adapter.js"></script>
<script type="text/javascript" src="ext-all.js"></script>
<script type="text/javascript" src="javascript.js"></script>
<title>Meu grid com toolbar</title>
<script type="text/javascript">
function clearSelectField(value, field)
{
var element = document.getElementById("s2");
while (element.firstChild) {
element.removeChild(element.firstChild);
}
xajax_populate(value);
}
function disableSelectField()
{
var element = document.getElementById("s2");
element.disabled = true;
}
function enableSelectField()
{
var element = document.getElementById("s2");
element.disabled = false;
}
</script>
</head>
<body>
<?php
$xajax->printJavascript('../../../xajax/');
?>
<form method="post">
<select id="s1" onChange="clearSelectField(this.value, s2);">
<option value="0">Select field</option>
<?php
while ($row = mysql_fetch_array($result)) {
print '<option value="' . $row['value'] . '">' . $row['value'] . '</option>';
}
?>
</select>
<p></p>
<select id="s2">
<option value="123">123</option>
</select>
</form>
<br />
<br />
<div id="grid-paging" style="border:1px solid #99bbe8;overflow: hidden; width: 450px; height: 300px;"></div>
</body>
</html>
Ext.onReady(function(){
var ds = new Ext.data.Store({
proxy: new Ext.data.ScriptTagProxy({
url: 'result.php'
}),
reader: new Ext.data.JsonReader({
root: 'results',
totalProperty: 'total',
id: 'id'
}, [
{name: 'id', mapping: 'id'},
{name: 'value', mapping: 'value'}
])
});
var cm = new Ext.grid.ColumnModel([{
id: 'id',
header: "Id",
dataIndex: 'id',
width: 50
},{
header: "Value",
dataIndex: 'value',
width: 50
}]);
var grid = new Ext.grid.Grid('grid-paging', {
ds: ds,
cm: cm,
trackMouseOver: true,
loadMask: true,
autoExpandColumn: 'id'
});
grid.on('click', update);
grid.render();
var gridHeader = grid.getView().getHeaderPanel(true);
var paging = new Ext.PagingToolbar(gridHeader, ds, {
pageSize: 15,
displayInfo: true,
displayMsg: 'Mostrando resultados {0} - {1} de {2}',
emptyMsg: "Nenhum resultado retornado"
});
var gridFooter = grid.getView().getFooterPanel(true);
var paging = new Ext.PagingToolbar(gridFooter, ds, {
pageSize: 15,
displayInfo: true,
displayMsg: 'Mostrando resultados {0} - {1} de {2}',
emptyMsg: "Nenhum resultado retornado"
});
ds.load({params:{start:0, limit:15}});
function update(grid_event)
{
Ext.Msg.alert('Ola', 'Eu fui activada por um click na grid');
// Here is where i want to alert the clicked data
}
});
<?php
include_once("dbconfig.inc.php");
include_once("JSON/JSON.php");
include_once("adodb/adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect($host, $user, $pwd, $mydb);
$rs=$db->Execute("SELECT `id` FROM `select1`");
$total=$rs->RecordCount();
$start=$_GET['start'];
$limit=$_GET['limit'];
$rs=$db->Execute("SELECT `id` , `value` FROM `select1` LIMIT $start , $limit");
while(!$rs->EOF){
$data[]=$rs->fields;
$rs->MoveNext();
}
$json = new Services_JSON();
echo $_GET['callback'].'({"total":'.$total.',"results":'.$json->encode($data).'})';
?>
Thanks.
Best reguards:
Tiago Oliveira