Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

JoaoNascimento

Grid+Dojo toolkit+php+mysql

Recommended Posts

JoaoNascimento

Não sei se estou a colocar no local exacto. O meu problema é muito estranho, passo a explicar: Estou a criar um sistema de gestão de utilizadores, onde vou buscar os dados a uma base de dados mysql.

Utilizo sempre uma página de testes chamada teste.php onde normalmente testo o código de alteração da bd e de consulta depois é só passar para a página relativa. O problema é que ao listar os dados numa grid utilizando o Dojo toolkit a página de testes funciona direitinho e lista os dados, mas quando passo o código para a página onde pretendo usar não lista nenhuns dados.

teste.php

<!DOCTYPE html>
<!--http://www.enterprisedojo.com/2011/01/31/a-simple-dojo-datagrid-example-or-so-close-yet-wide-right/-->
<html>
<head>
<title>The Simplest Dojo DataGrid Example of All Time</title>
<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dijit/themes/claro/claro.css" />

<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojox/grid/resources/Grid.css" />

<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojox/grid/resources/claroGrid.css" />
</head>

<body class="claro">
    <div style="width: 600px; height: 200px">
        <table id="userGrid" dojoType="dojox.grid.DataGrid">
            <thead>
                <tr>
                    <th field="idUtilizador">ID</th>
                    <th field="nome">Nome</th>
                    <th field="password">Password</th>
                    <th field="idTipoUtilizador" width="180px">Tipo Utilizador</th>
                </tr>
            </thead>
        </table>
    </div>

<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js"
    djConfig="parseOnLoad:true"></script>

<script type="text/javascript">
    dojo.require("dojox.grid.DataGrid");
    dojo.require("dojo.data.ItemFileReadStore");
</script>

<script type="text/javascript">
dojo.ready(function() {
<?php

$servidor = "localhost";
$utilizador = "root";
$senha = "";
$bd = "login";

$conexao = mysql_connect($servidor, $utilizador, $senha); //liga a base de dados mysql

mysql_select_db($bd); //seleciona a base de dados

$resultado = mysql_query("select * from utilizador"); //comando sql para ir buscar todos os utilizadores

    echo"var theGreatestTeamOfAllTime = {";
        echo "items: [ "; 
	while($escrever=mysql_fetch_array($resultado)){
			  echo '{
                  "idUtilizador":"'.$escrever["idUtilizador"].'",
                  "nome":"'.$escrever["nome"].'",
                  "password":"'.$escrever["password"].'",
                  "idTipoUtilizador":"'.$escrever["TipoUtilizador_idTipoUtilizador"].'"
                  },';
			  }
               echo '],';
        echo "identifier: 'idUtilizador'";
    echo "};";
mysql_close($conexao);
?>

    var dataStore =
    new dojo.data.ItemFileReadStore(
        { data:theGreatestTeamOfAllTime }
    );
    var grid = dijit.byId("userGrid");
    grid.setStore(dataStore);
});
</script>

</body>
</html>

<html>
<head>
<title>Gerir Utilizadores</title>
<link rel="stylesheet" href="../../../resources/style/demo.css" media="screen">
<!-- load dojo and theme; provide config via data attribute -->
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dijit/themes/claro/claro.css">
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js"
	data-dojo-config="isDebug: true, async: true, parseOnLoad: true">
</script>

<link rel="stylesheet" type="text/css"
 href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojox/grid/resources/Grid.css" />

 <link rel="stylesheet" type="text/css"
 href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojox/grid/resources/claroGrid.css" />

</head>
<body class="claro">
<h1>Gerir Utilizadores</h1>
<?php include("seguranca.php"); 
?>
<p align="right"><?php echo "Olá, " . $_SESSION['utilizadorNome']." "?><a href="index.php" onclick="<?php unset($_SESSION['usuarioID'], $_SESSION['usuarioNome'], $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);?>);">Logout</a></p>
<p>
	<input type="submit" value="Novo" onClick="parent.location='dadosUtilizador.php'" id="enviarForm" label="Novo" dojoType="dijit.form.Button">
</p>
<p>
	<!--Area onde são apresentados os utilizadores registados-->
	<b>Tabela dos utilizadores registados</b>

	<div style="width: 600px; height: 200px">
		<table id="userGrid" dojoType="dojox.grid.DataGrid">
			<thead>
				<tr>
					<th field="idUtilizador">ID</th>
					<th field="nome">Nome</th>
					<th field="password">Password</th>
					<th field="idTipoUtilizador" width="180px">Tipo Utilizador</th>
				</tr>
			</thead>
		</table>
	</div>

<script type="text/javascript"
 src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js"
	djConfig="parseOnLoad:true"></script>

<script type="text/javascript">
dojo.ready(function() {
<?php

$servidor = "localhost";
$utilizador = "root";
$senha = "";
$bd = "login";

$conexao = mysql_connect($servidor, $utilizador, $senha); //liga a base de dados mysql

mysql_select_db($bd); //seleciona a base de dados

$resultado = mysql_query("select * from utilizador"); //comando sql para ir buscar todos os utilizadores

	echo"var theGreatestTeamOfAllTime = {";
		echo "items: [ "; 
		while($escrever=mysql_fetch_array($resultado)){
				  echo '{
				  "idUtilizador":"'.$escrever["idUtilizador"].'",
				  "nome":"'.$escrever["nome"].'",
				  "password":"'.$escrever["password"].'",
				  "idTipoUtilizador":"'.$escrever["TipoUtilizador_idTipoUtilizador"].'"
				  },';
				  }
			   echo '],';
		echo "identifier: 'idUtilizador'";
	echo "};";
	mysql_close($conexao);
	?>

	var dataStore = new dojo.data.ItemFileReadStore(
		{ data:theGreatestTeamOfAllTime }
	);
	var grid = dijit.byId("userGrid");
	grid.setStore(dataStore);
});
</script>
</p>
<p>
	<form method="post" action="modificarUtilizador.php" dojoType="dijit.form.Form">
		<select size="1" name="ModificarUtilizador" data-dojo-type="dijit.form.FilteringSelect" id="ModificarUtilizador">
		<option selected value="Selecione">Selecione</option>
		<?php
		$servidor = "localhost";
		$utilizador = "root";
		$senha = "";
		$bd = "login";

		$conexao = mysql_connect($servidor, $utilizador, $senha); //liga a base de dados mysql

		mysql_select_db($bd); //seleciona a base de dados

		$resultado = mysql_query("select * from utilizador"); //comando sql para ir buscar todos os utilizadores
		while($escrever=mysql_fetch_array($resultado)){
		//escreve cada linha da tabela
		echo "<option value=".$escrever["idUtilizador"].">".$escrever["nome"]."</option>";
		}

		?>

		</select>
		<input type="submit" value="Modificar" id="modificarForm" label="Modificar" dojoType="dijit.form.Button">
	</form>
</p>
<p>
	<form method="post" action="eliminarUtilizador.php" dojoType="dijit.form.Form">
		<select size="1" name="ApagarUtilizador" data-dojo-type="dijit.form.FilteringSelect" id="ApagarUtilizador">
		<option selected value="Selecione">Selecione</option>
		<?php
		$resultado = mysql_query("select * from utilizador"); //comando sql para ir buscar todos os utilizadores
		while($escrever=mysql_fetch_array($resultado)){
		//escreve cada linha da tabela
		echo "<option value=".$escrever["idUtilizador"].">".$escrever["nome"]."</option>";
		}
		mysql_close($conexao);
		?>
		</select>
		<input type="submit" value="Apagar" id="apagaForm" label="Apagar" dojoType="dijit.form.Button">
	</form>
</p>
<script>
	// load requirements for declarative widgets in page content
	require(["dojo/parser", 
	/* dojox/ validate resources */
	"dojox/validate/us", "dojox/validate/web",
	/* basic dijit classes */
	"dijit/form/CheckBox", "dijit/form/Textarea", "dijit/form/FilteringSelect", "dijit/form/TextBox", "dijit/form/ValidationTextBox", "dijit/form/DateTextBox", "dijit/form/TimeTextBox", "dijit/form/Button", "dijit/form/RadioButton", "dijit/form/Form", "dijit/form/DateTextBox",
	/* basic dojox classes */
	"dojox/form/BusyButton", "dojox/form/CheckedMultiSelect", "dojo/domReady!", "dojox/form/PasswordValidator", "dojo/data/ItemFileReadStore", "dijit/form/ComboBox", "dijit/form/FilteringSelect", "dojox/grid/DataGrid"]);
</script>
</body>
</html>

Que poderei eu estar a fazer de errado? Desculpem colocar todo o código...

Share this post


Link to post
Share on other sites
JoaoNascimento

Acho que descobri o problema, o problema prende-se na inclusão deste link:

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js"
	data-dojo-config="isDebug: true, async: true, parseOnLoad: true">
</script>

Mas pelo que estive a ver este é o ficheiro que coloca os botões e outros componentes, se não o colocar esses componentes não funcionam.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.