Skip to content
Browse files

aula 22

  • Loading branch information...
1 parent 9c264ed commit 46e36868814df36a18021b42fb404b8836478264 @loiane committed Mar 28, 2012
Showing with 454 additions and 0 deletions.
  1. +89 −0 aula22/exemploJson.html
  2. +91 −0 aula22/exemploXml.html
  3. +21 −0 aula22/php/conectar.php
  4. +111 −0 aula22/php/json/contatos.php
  5. +142 −0 aula22/php/xml/contatos.php
View
89 aula22/exemploJson.html
@@ -0,0 +1,89 @@
+<html>
+<head>
+
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
+
+ <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css">
+ <script type="text/javascript" src="../extjs/ext-all.js"></script>
+
+</head>
+
+<body></body>
+
+ <script type="text/javascript">
+
+ Ext.define('Contato',{
+ extend: 'Ext.data.Model',
+
+ fields: [
+ {name: 'id', type: 'int'},
+ {name: 'nome', type: 'string'},
+ {name: 'email', type: 'string'}
+ ]
+ });
+
+ Ext.define('ContatosStore',{
+ extend: 'Ext.data.Store',
+ model: 'Contato',
+ proxy: {
+ type: 'rest',
+
+ url: 'php/json/contatos.php', //todas op CRUD!!!
+
+ reader: {
+ type: 'json', //json ou xml
+ root: 'contatos'
+ },
+
+ writer: {
+ type: 'json', //json ou xml
+ root: 'contatos',
+ writeAllFields: true,
+ encode: true,
+ allowSingle: true
+ }
+ },
+ autoLoad: true,
+
+ autoSync: true
+ })
+
+ Ext.onReady(function(){
+
+
+ var store = Ext.create('ContatosStore');
+
+ //console.log(store.data);
+
+ store.on('load', function(s){
+
+ console.log(s.data);
+
+ var contato = Ext.create('Contato',{
+ nome: 'Loiane2',
+ email: 'me@loiane.com'
+ });
+
+ //CREATE
+ //s.add(contato); //s.add({nome: 'Loiane2', email: 'me@loiane.com'});
+ //s.insert(0,contato); //insere contato na primeira posição da store
+
+ //UPDATE
+ //var contatoAtualizado = s.getAt(0); //s.get(14)
+ //contatoAtualizado.set('nome', 'Loiane');
+
+ //DELETE
+ //s.remove(modelo);
+ //s.removeAt(index);
+ //s.removeAll(silent); //remove tudo //silent == true ou false
+ s.remove(s.getAt(2));
+
+ //s.sync();
+
+
+ });
+
+ });
+ </script>
+
+</html>
View
91 aula22/exemploXml.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
+
+ <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css">
+ <script type="text/javascript" src="../extjs/ext-all-dev.js"></script>
+
+</head>
+
+<body></body>
+
+ <script type="text/javascript">
+
+ Ext.define('Contato',{
+ extend: 'Ext.data.Model',
+
+ fields: [
+ {name: 'id', type: 'int'},
+ {name: 'nome', type: 'string'},
+ {name: 'email', type: 'string'}
+ ]
+ });
+
+ Ext.define('ContatosStore',{
+ extend: 'Ext.data.Store',
+ model: 'Contato',
+ proxy: {
+ type: 'rest',
+
+ url: 'php/xml/contatos.php',
+
+ reader: {
+ type: 'xml', //json ou xml
+ root: 'contatos',
+ record: 'contato'
+ },
+
+ writer: {
+ type: 'xml', //json ou xml
+ documentRoot: 'contatos',
+ record: 'contato',
+ writeAllFields: true,
+ encode: true,
+ nameProperty: 'mapping'
+ }
+ },
+ autoLoad: true,
+
+ autoSync: true
+ })
+
+ Ext.onReady(function(){
+
+
+ var store = Ext.create('ContatosStore');
+
+ //console.log(store.data);
+
+ store.on('load', function(s){
+
+ console.log(s.data);
+
+ var contato = Ext.create('Contato',{
+ nome: 'Loiane3',
+ email: 'me@loiane.com'
+ });
+
+ //CREATE
+ //s.add(contato); //s.add({nome: 'Loiane2', email: 'me@loiane.com'});
+ //s.insert(0,contato); //insere contato na primeira posição da store
+
+ //UPDATE
+ //var contatoAtualizado = s.getAt(2); //s.get(14)
+ //contatoAtualizado.set('nome', 'dfgdfg');
+
+ //DELETE
+ //s.remove(modelo);
+ //s.removeAt(index);
+ //s.removeAll(silent); //remove tudo //silent == true ou false
+ s.remove(s.getAt(2));
+
+ //s.sync();
+
+
+ });
+
+ });
+ </script>
+
+</html>
View
21 aula22/php/conectar.php
@@ -0,0 +1,21 @@
+<?php
+
+//nome do servidor (127.0.0.1)
+$servidor = "127.0.0.1";
+
+//usuário do banco de dados
+$user = "root";
+
+//senha do banco de dados
+$senha = "root";
+
+//nome da base de dados
+$db = "cursoextjs4";
+
+//executa a conexão com o banco, caso contrário mostra o erro ocorrido
+$conexao = mysql_connect($servidor,$user,$senha) or die (mysql_error());
+
+//seleciona a base de dados daquela conexão, caso contrário mostra o erro ocorrido
+$banco = mysql_select_db($db, $conexao) or die(mysql_error());
+
+?>
View
111 aula22/php/json/contatos.php
@@ -0,0 +1,111 @@
+<?php
+
+ //chama o arquivo de conexão com o bd
+ include("../conectar.php");
+
+ switch ($_SERVER['REQUEST_METHOD']) {
+
+ case 'GET':
+ listaContatos();
+ break;
+
+ case 'POST':
+ criaContato();
+ break;
+
+ case 'PUT':
+ atualizaContato();
+ break;
+
+ case 'DELETE':
+ deletaContato();
+ break;
+ }
+
+ function listaContatos() {
+
+ //consulta sql
+ $query = mysql_query("SELECT * FROM Contato") or die(mysql_error());
+
+ //faz um looping e cria um array com os campos da consulta
+ $rows = array('contatos' => array());
+ while($contato = mysql_fetch_assoc($query)) {
+ $rows['contatos'][] = $contato;
+ }
+
+ //encoda para formato JSON
+ echo json_encode($rows);
+ }
+
+ function criaContato() {
+
+ $info = $_POST['contatos'];
+
+ $data = json_decode(stripslashes($info));
+
+ $nome = $data->nome;
+ $email = $data->email;
+
+ //consulta sql
+ $query = sprintf("INSERT INTO Contato (nome, email) values ('%s', '%s')",
+ mysql_real_escape_string($nome),
+ mysql_real_escape_string($email));
+
+ $rs = mysql_query($query);
+
+ echo json_encode(array(
+ "success" => mysql_errno() == 0,
+ "contatos" => array(
+ "id" => mysql_insert_id(),
+ "nome" => $nome,
+ "email" => $email
+ )
+ ));
+ }
+
+ function atualizaContato() {
+
+ parse_str(file_get_contents("php://input"), $post_vars);
+
+ $info = $post_vars['contatos'];
+
+ $data = json_decode(stripslashes($info));
+
+ $nome = $data->nome;
+ $email = $data->email;
+ $id = $data->id;
+
+ //consulta sql
+ $query = sprintf("UPDATE Contato SET nome = '%s', email = '%s' WHERE id=%d",
+ mysql_real_escape_string($nome),
+ mysql_real_escape_string($email),
+ mysql_real_escape_string($id));
+
+ $rs = mysql_query($query);
+
+ echo json_encode(array(
+ "success" => mysql_errno() == 0
+ ));
+ }
+
+ function deletaContato() {
+
+ parse_str(file_get_contents("php://input"), $post_vars);
+
+ $info = $post_vars['contatos'];
+
+ $data = json_decode(stripslashes($info));
+
+ $id = $data->id;
+
+ //consulta sql
+ $query = sprintf("DELETE FROM Contato WHERE id=%d",
+ mysql_real_escape_string($id));
+
+ $rs = mysql_query($query);
+
+ echo json_encode(array(
+ "success" => mysql_errno() == 0
+ ));
+ }
+?>
View
142 aula22/php/xml/contatos.php
@@ -0,0 +1,142 @@
+<?php
+
+ header('Content-type: text/xml'); //MUITO IMPORTANTE!!!
+
+ //chama o arquivo de conexão com o bd
+ include("../conectar.php");
+
+ switch ($_SERVER['REQUEST_METHOD']) {
+
+ case 'GET':
+ listaContatos();
+ break;
+
+ case 'POST':
+ criaContato();
+ break;
+
+ case 'PUT':
+ atualizaContato();
+ break;
+
+ case 'DELETE':
+ deletaContato();
+ break;
+ }
+
+ function listaContatos() {
+
+ //consulta sql
+ $query = mysql_query("SELECT * FROM Contato") or die(mysql_error());
+
+ //faz um looping e cria um xml com os campos da consulta
+ $xml = '<?xml version="1.0" encoding="iso-8859-1" ?>';
+ $xml.="<contatos>";
+
+ $rows = array();
+ while($contato = mysql_fetch_assoc($query)) {
+ $xml.= "<contato>";
+ $xml.= "<id>" . $contato['id'] . "</id>";
+ $xml.= "<nome>" . $contato['nome'] . "</nome>";
+ $xml.= "<email>" . $contato['email'] . "</email>";
+ $xml.= "</contato>";
+ }
+
+ $xml.="</contatos>";
+
+ //envia resultado do XML
+ echo $xml;
+ }
+
+ function criaContato() {
+
+ $dom = new DOMDocument();
+ $dom->loadXML(file_get_contents('php://input'));
+
+ $contatos = simplexml_import_dom($dom);
+
+ $nome = $contatos->contato->nome;
+ $email = $contatos->contato->email;
+
+ //consulta sql
+ $query = sprintf("INSERT INTO Contato (nome, email) values ('%s', '%s')",
+ mysql_real_escape_string($nome),
+ mysql_real_escape_string($email));
+
+ $rs = mysql_query($query);
+
+ $xml = '<?xml version="1.0" encoding="iso-8859-1" ?>';
+ $xml.="<contatos>";
+
+ $xml.="<success>" . mysql_errno() == 0 . "</success>";
+
+
+ $xml.= "<contato>";
+ $xml.= "<id>" . mysql_insert_id(). "</id>";
+ $xml.= "<nome>" . $nome . "</nome>";
+ $xml.= "<email>" . $email . "</email>";
+ $xml.= "</contato>";
+
+
+ $xml.="</contatos>";
+
+ //envia resultado do XML
+ echo $xml;
+ }
+
+ function atualizaContato() {
+
+ $dom = new DOMDocument();
+ $dom->loadXML(file_get_contents('php://input'));
+
+ $contatos = simplexml_import_dom($dom);
+
+ $nome = $contatos->contato->nome;
+ $email = $contatos->contato->email;
+ $id = $contatos->contato->id;
+
+ //consulta sql
+ $query = sprintf("UPDATE Contato SET nome = '%s', email = '%s' WHERE id=%d",
+ mysql_real_escape_string($nome),
+ mysql_real_escape_string($email),
+ mysql_real_escape_string($id));
+
+ $rs = mysql_query($query);
+
+ $xml = '<?xml version="1.0" encoding="iso-8859-1" ?>';
+ $xml.="<contatos>";
+
+ $xml.="<success>" . mysql_errno() == 0 . "</success>";
+
+ $xml.="</contatos>";
+
+ //envia resultado do XML
+ echo $xml;
+ }
+
+ function deletaContato() {
+
+ $dom = new DOMDocument();
+ $dom->loadXML(file_get_contents('php://input'));
+
+ $contatos = simplexml_import_dom($dom);
+
+ $id = $contatos->contato->id;
+
+ //consulta sql
+ $query = sprintf("DELETE FROM Contato WHERE id=%d",
+ mysql_real_escape_string($id));
+
+ $rs = mysql_query($query);
+
+ $xml = '<?xml version="1.0" encoding="iso-8859-1" ?>';
+ $xml.="<contatos>";
+
+ $xml.="<success>" . mysql_errno() == 0 . "</success>";
+
+ $xml.="</contatos>";
+
+ //envia resultado do XML
+ echo $xml;
+ }
+?>

0 comments on commit 46e3686

Please sign in to comment.
Something went wrong with that request. Please try again.