Jump to content


Most Liked Content


#166107 Como Fazer Uma ''linha'' Ou "traço" Em Html

Posted by H^llz on 10/08/2003, 15:13

<hr align="center" width="40" size="1" color=red>

Align : A posição
Wdth : Tamanho
Size : Espessura
Coloer : Cor


#328891 Include Em Html é Possível

Posted by Lengrat on 30/03/2004, 16:56

Galera...

Depois de algum tempo ficar fuçando com ASP e PHP, veio uma dúvida Cachorra: É possível criar includes em HTML?

Tenho um menu padrão, feito em uma tabela , que é utilizado em umas 15 páginas aqui do site da empresa.

Acontece que eu tenho que fazer uma atualização neste menu, inserindo mais uma seção, blablalba. Vai ser um saco ter que ficar alterando todas as 15 páginas, mesmo ficando no ctrc+ctrlV.

Há como fazer um arquivo externo para conter somente esta tabela que compõem o menu?

Sei que tem algo parecido quando vc cria um menu no Firewoks e exporta o Html. dahi é só alterar o Html que será alterado em todos os menus que compartilhem esse HTML do FW.


Como fazer isto na munheca, sem usar este recurso de inserir HTML do Firewoks?

:blink:


#1108715 Como Fazer Uma ''linha'' Ou "traço" Em Html

Posted by LarPhozyHah on 29/09/2017, 07:45

Kamagra 100mg Dosage Amoxicilina Medicine Website Shop Without Rx Taking Amoxil With Cipro cialis online Amoxicillin Canine Pharmaceutical
Cialis Viagra Hypertension Tofranil cialis Foro De Kamagra Cialis 10 Mg Durata
Propecia New York online pharmacy Il Sur D'Aspirine Amoxil Cialis Online 5 Mg
Propecia Topical Hair Loss Treatment Buy Orlistat Online Without Script cheap cialis Amoxicillin Capsule Tev Viagra Como Comprar


#203171 Conhecendo Um Pouco Do Action Script 2

Posted by Foxn on 07/10/2003, 00:10

Como o espaço é curto e tempo mais ainda :D vamos direto ao assunto e preparar o terreno para o AS2. Pois bem, eu criei uma pasta para chamada flash_2004, dentro dela eu tenho um simples arquivo teste.fla em branco, então tendo-se isso vamos criar uma classe, vá em File>>New>>Geral>>ActionScript File. Vamos começar criando uma classe chamada "Registro":

1 class Registro {
2  
3 }

Agora muito importante o arquivo da classe tem de ter o mesmo nome de sua classe por isso salve agora esse arquivo como Registro.as na pasta flash_2004. Feito isso vamos fazer a função construtora que será executada no momento que essa classe for usada para gerar um objeto.

1 class Registro {
2  function Registro(){
3 	 trace("A classe está funcionando");
4  }
5 }

Agora vamos ao nosso arquivo teste.fla e colocamos esse código em seu primeiro frame:

// declara nome:tipo da classe 
var novo:Registro;
// Gerando um novo objeto
novo = new Registro();

Teste seu filme e se aparecer "A classe está funcionando" em sua janela de saida então sua classe já está funcionando, mas como pode estar funcionado se eu não defini para ela ser importade em nenum lugar? Simples vá em Edit>>Preferences>>ActionScript>>Action Script 2.0 Settings... e pronto como você pode ver ele possue dois itens, o primeiro informa que todas as classes da pasta de classes do flash serão carregadas para dentro do seu swf e a segunda linha diz que
todas as classes que estiverem na mesma pasta quando seu swf foi gerado serão "imcorporadas" ao seu swf e é por isso que você não precisou colocar nada para imcorpora-la ao seu swf. Caso você queira definir outras pastas com classes para ser incorporadas em todos os seus swfs pode defini-las ai, caso queira definir apenas psrs aquele swf em particular vá em File>>Publish Settings>>Flash>>Settings...
Agora que sabemos por que funcionou vamos voltar ao nosso arquivo Registro.as, mas agora vamos colocar alguns dados:

1 class Registro {
2  // Delarando algumas propriedades
3  var nome:String;
4  var sobrenome:String;
5	var idade:Number;
6	// Função contrutora
7	function Registro($nome:String,$sobrenome:String,$idade:Number){
8  nome = $nome;
9  sobrenome = $sobrenome;
10  idade = $idade;
11	}
12  }

Agora salve o arquivo e voltemos ao teste.fla, onde agora podemaos passar alguns argumentos para a nossa classe:

// declara nome:tipo da classe 
var novo:Registro;
// Gerando um novo objeto
novo = new Registro("Paulo","Marques",25);

Pronto, agora temos um objeto com 3 simples propriedades, de um Ctrl+V para ver as propriedades. Importante lembrar que como definimos os tipos de dados das propriedades elas não aceitarão valores diferentes dos especificados, mesmo numerico não aceitará numeros entre aspas, o que ele considera como uma string e não um número. Mas e agora, é uma simples classe mas e se você quiser definir uma nova propriedade somente para esse objeto? Algo assim:

// declara nome:tipo da classe 
var novo:Registro;
// Gerando um novo objeto
novo = new Registro("Paulo","Marques",25);
novo.cidade = "São Paulo"

Mas infelizmente isso vai dar erro, pois nossa classe permite que você altere os valores das propriedade de nosso objeto mas não permite adicionar novas propriedades a cada objeto individualmente, mas isso é uma coisa que podemos resolver rapidamente, vamos ao Registro.as e mudamos somente a sua primeira linha, ficara assim:

1 dynamic class Registro {

Pronto agora que adicionamos o dynamic você pode voltar ao teste.fla e testá-lo sem prblemas. E é isso ai uma simples classe com o action script 2, e ainda há muito mais a ser visto. Caso você queira saber como seria feita essa mesma classe no Flash MX, coloque no seu primeiro frame e teste:

_global.Registro = function($nome,$sobrenome,$idade){
	this.nome = $nome;
	this.sobrenome = $sobrenome;
	this.idade  = $idade;
}
novo = new Registro("Paulo","Marques",25);
novo.cidade = "São Paulo";

Claro que no Flash MX 2004 temos muitos mais recurso dos quais não podemos contar no Flash MX que é um conceito bem melhor para se desenvolver classes.

E é isso ai fui.

[]'s


#1039531 Tramadol Order Online Net <> Buy Cheap Tramadol Online Uk

Posted by DocAndMed on 10/06/2017, 11:22

usa.png
4-en.png

Tramadol Without Prescriptions Legal

5-en.png

Ultram Uk Buy

6-en.png

Tramal Online Pharmacy


Related Tags:
tramadol tablets for sale uk
tramadol no prescription overnight cod delivery
buy ultram online with credit card
tramadol cheap cod
tramadol 200 mg for sale
generic ultram no prescription
order tramadol from mexico
tramadol buy usa
buy bulk tramadol
tramadol online with no prescription
buy mexican tramadol
how to order tramadol
order tramadol with no prescription
get tramadol without prescription
tramadol can you buy over counter
buy tramal
order tramadol from india
order tramadol online mastercard
order tramadol no prescription cheap
tramadol hcl sale
buy 30mg codeine uk bromazepam order order tramadol from us pharmacy
buy cheap tramadol without prescription
how to order tramadol online legally
tramadol no prescription uk
order tramadol over phone
order tramadol overnight delivery
tramadol online pharmacy europe
buy cheap tramadol cod
purchase tramadol online
cheap tramadol buy
tramadol from canada no prescription
cheap fast tramadol
tramadol order canada
tramadol price no insurance
buy 300 mg tramadol
online pharmacy tramadol next day
order generic ultram
tramadol without prescription legal
tramadol online purchase
cheap ultram for sale
sonata best price soma no prescription overnight ultram online us pharmacy
cheap tramadol online overnight delivery
buy cheap tramadol cod
tramadol for sale cheap
tramadol order online mexico
order tramadol online cod
ultram order
tramadol er without prescription
rx europe online pharmacy tramadol
tramadol order uk
tramadol purchase cod
ultram order online
legitimate online pharmacy tramadol
cheap tramadol overnight delivery
buy ultram online overnight
tramadol no prescription uk
tramal purchase
tramadol 200 mg for sale
buy cheap tramadol overnight
tramadol for sale forum
tenuate online pharmacy hydrocodone provigil order online canada tramadol for sale in canada
tramadol no prescription australia
tramal to buy
tramadol online pharmacy viagra
legal to order tramadol online
cheap tramadol online cod
buy american tramadol
order tramadol fast
can i get tramadol without prescription
order tramadol without
tramal for sale
cheap tramadol for sale
tramadol online pharmacy overnight delivery
order tramadol europe
tramadol to purchase
buy tramadol
cheap 100 mg tramadol
tramadol 100 mg for sale online
tramadol buy with mastercard
purchase tramadol online without prescription
buy clonazepam online generic lunesta no prescription ultram without prescription uk
tramadol buy
buy ultram free shipping
buy cheap tramadol without prescription
order tramadol cod next day delivery
how to order tramadol overnight
tramal no prescription xanax
buy generic ultram
purchase tramadol online
order tramadol with no prescription
buy genuine tramadol online uk
cheap tramadol online overnight delivery
tramadol purchase with mastercard
tramadol without prescription usa
buy cheap fedex tramadol
tramadol without prescriptions overnight
tramadol 200 mg for sale
tramadol for sale in canada
buy ultram without prescription
tramadol without prescriptions
cheap zopiclone tablets midazolam to buy



#738980 Pra Quem Ainda Não Entende Ajax.

Posted by bimonti on 11/05/2006, 12:37

Bom, sobre o AJAX eu não sou nem TRUE e nem FALSE, eu sou NULL, por isso não perguntem se eu sei usa-lo da melhor forma, se eu recomendo, ou se sou contra. Não sei, nunca fiz nenhuma aplicação de grande porte que necessitasse, portanto não vou comentar, simplesmente NULL. E quem garante que eu sei o que é AJAX ?? Nunca ouviram a frase: "Quem sabe faz, quem não sabe ensina!" ??

Antes de COMEÇAR a ler este post você se compromete aos seguintes termos:
- Eu tenho conhecimento pleno em HTML.
- Eu conheço JavaScript.
- Eu já usei um pouco algumas coisas de DOM.
- Sei o que é XML.
- Também sei que AJAX só funciona com requisições http, ou seja, não vou acessar assim: c://Documents and Settings/eu_mesmo/meu primeiro ajax.js e muito menos file:/// ...
- Sei que isso não é um código completo e não vou perguntar: "Como mudo 'isso' pra 'churisso' e coloco no meu site de video games ?? PLZzzorRR !!11!"

Eu avisei...

Esse post não é mais um dos vários exemplos de como utilizar o AJAX para fazer 2 selects, cadastrar alguma informação e etc.. porque vejo que normalmente são usuários que não tem tanto conhecimento sobre Javascript que utilizam os códigos dos tutoriais e querem fazer alterações, sem ao menos saber o porque daqueles 'comandos' dentro da função. Ou estou errado ?? Todo mundo que tem uma aplicação AJAX que seja no site sabe o porque do número 4 no "var.readyState == 4" ??? Garanto que quem fez o código do tutorial sabe, mas quem copiou o código e colou no dreamweaver salvando com o mesmos nomes não sabe. Pensando nisso eu vou dar um breve comentário sobre algumas coisas que fazem parte das funções mais conhecidas.

Primeiro de tudo você tem que inicar a requisição ao navegador. Para isso vamos inicar uma instância do objeto XMLHttpRequest. Mas como todo mundo tá careca de saber tem as diferenças de navegador. A família Safari, Mozilla usa de uma forma os os IElike usam de outra. Tá explicado o porque de:

var variavel;
if (window.XMLHttpRequest) {
variavel = new XMLHttpRequest();
} else if (window.ActiveXObject) {
variavel = new ActiveXObject("Microsoft.XMLHTTP");
}


No quote acima eu crio uma variavel com o nome de 'variavel', depois eu testo o objeto XMLHttpRequest(pra a família Mozilla, Safari), se ele retornar TRUE a variavel vai criar o objeto, senão vai pra proxima tentativa que é pra família IE. É comum ser usado junto com a inicialização do objeto o try..catch, que é uma função do Javascript (tá aí o porque era bom saber um pouco de Javascript). O try..catch serve para pegar o erro e não mostrar pro usuario aquela janelinha "There's an error, do you wish to debug ?". Apesar que o try..catch só é suportado a partir do IE5+ e Mozilla 1+ (Se você pensa que vai segurar o erro quando o cara estiver usando o IE4 pode esquecer, use onerror). O try..catch funciona assim, imagine que eu queria dar um alert e sem querer errei a digitação:

var msg;
function mostraAlerta(){
try{
aalert("Olá");
}
catch(erro)
{
msg = "Ocorreu um erro na página. \n";
msg+ = "Clica no OK pra continuar";
alert(msg);
}
}


Chega de try..catch, não é o objetivo do post. Bom, vamos ver agora os métodos do XMLHttpRequest. Estão nesse formato:

Nome = Descrição. Meu comentário.

abort() = Aborta a atual requisição. Precisa de comentários ? Então tá bom, você pode usar caso fique com medo do seu servidor demorar para devolver a requisição. Crie na função que manda a requisição um TimeStamp, caso ela demore muito você aborta e dá uma mensagem de erro.

open("método", "URL"[, assíncrono [, "usuario"[, "senha"]]]) = Define a URL, o método e os parâmetros adicionais da requisição a ser enviada. Provavelmente esse é o método que você mais verá, junto com o send(). ELe é responsável por definir os parâmetros da requisição. Os métodos podem ser POST ou GET, e o 'assíncrono' que tem na sintaxe do método é o que define se a execução do script é feita imediatamente após o método send() ser chamado ou se aguarda por uma resposta. Use as flags TRUE ou FALSE. O problema de usar o FALSE é que se o seu servidor ficar sem responder a tela do navegador vai ficar congelada, mais ou menos quando trava tudo no PC. Os outros parâmetros são opcionais.

send(conteúdo) = Transmite a requisição, opcionalmente com dados postados ou dados DOM. É isso mesmo, esse método que vai enviar a requisição. Se você usar GET e passar os dados pela URL use send(null), se usar POST é só colocar o conteúdo a ser passado aí dentro. Mas usando o POST você tem que enviar alguns cabeçalhos junto. Veja mais no outro método.

setRequestHeader("label","valor") = Define um label/valor para o cabeçalho que será enviado junto com a requisição. Nem traduzi o label porque fica feio.

Olhe os 2 exempos abaixo e veja se entende melhor:

var.onreadystatechange = functionPraTrabalharARequisicao;
var.open("GET", url, true);
var.send(null);


var.open("POST", url, true);
var.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
var.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
var.setRequestHeader("Pragma", "no-cache");
var.onreadystatechange = functionPraTrabalharARequisicao;
var.send("Nome=" + Nome);


Eu defini nos cabeçalhos que os dados serão enviados como se fossem um formulário normal. E no outro eu defini que não é pra armazenar as informações em cache, porque as vezes acontece de devolver a mesma requisição, ou outros problemas.

Agora vamos ver as propriedades. Neste formato:

Nome = Descrição. Meu comentário.

readyState = Número inteiro com o status da requisição. Devolve como um número inteiro o status da sua requisição. Só isso.
0 = Não inicializado
1 = carregando
2 = carregado
3 = Interagindo
4 = Completo

onreadystatechange = Gerenciador de eventos a cada mudança de estado. Agora ferrou hein ??. Nada mais é que uma função que será responsável por checar se a requisição já foi processada. Por isso a comparação "readyState == 4", toda vez que mudar de estado uma função que você definir será responsável por essa verificação, então no seu código quando o estado for 4 você continua. A menos que você queria seguir no 1 ...

var.onreadystatechange = workSend;
var.open("GET", url, true);
var.send(null);


No exemplo acima eu defini que a função workSend() será a responsável por trabalhar com os valores retornados por readyState. É comum ver nessas funções somente a comparação "var.readyState == 4", mas nada impede de ser assim:

var.readyState == 0 -> Peraí que já vai começar
var.readyState == 1 -> Aee, seguuurraaa peãaaoo
var.readyState == 2 -> UUUhhhhhuuuuu, vamo que vamo
var.readyState == 3 -> Vamo lá cabloco, tá chegano
var.readyState == 4 -> Aqui você trabalha seu resultado

responseText = Versão 'string' dos dados devolvidos pelo servidor após processar a requisição. É somente isso que ela faz, nada mais. Simples e cru.

responseXML = Idêntica a de cima, mas devolve os dados no modelo DOM.

status = Código numérico retornado pela requisição ao servidor. É diferente do readyState, esse código é 200, 404, etc.. que no caso um 200 é que a página foi encontrada e está tudo OK, o 404 é que não achou .. etc..

statusText = Mensagem que acompanha o código do status. Você pode usar para exibir ao usuário a mensagem de erro retornada. Ex.:

if (var.status == 200) {
// ...se funfar você faz aqui suas paradas...
} else {
alert("Ouve um problema com sua requisição:\n" + var.statusText);
}


Bom, é isso ae, acho que agora fica mais fácil pra quem ainda tinha dúvidas sobre AJAX para já ir resolvendo alguns dos seus problemas sozinhos, dá pra esclarecer um pouco sobre os comandos e como utiliza-los. Não são todos os métodos e propriedades, tem muito mais por esse mundo afora.

T+


#1021341 Programar para Android com Android Studio

Posted by Danilomaru on 22/01/2015, 13:42

Está quase a fazer um ano que a Google lançou o Android Studio – um IDE de programação para a plataforma Android. Este IDE é semelhante ao popular Eclipse, com ADT Plugin, oferecendo as melhores ferramentas e funcionalidades aos programadores. Segundo a própria Google, com o Android Studio a programação para Android é mais simples e rápida.

 

Hoje vamos mostrar como podem começar a usar o Android Studio.

 

studio_08_thumb.jpg

 

Para quem está habituado ao Eclipse ou ao Netbeans, facilmente se adaptará ao Android Studio. Para os novatos, vão ver que também é simples. Lembrem-se que o sucesso de um programador começa inicialmente por dominar o IDE de programação. Vamos a isso então.

 

Download do Android Studio

 

O Android Studio está disponível para Windows, MacOS e Linux. Para descarregaram a vossa versão, basta que acedam à página do projecto aqui.

Em alguns sistemas Windows, caso o java nao seja detectado, é importante que criem uma variável de ambiente para essa finalidade.

Para isso basta ir as propriedade do “Meu Computado” > Propriedades > Propriedades Avançadas e depois aceder ao separador Variáveis de ambiente. e criar uma variável de ambiente do seguinte tipo:

JAVA_HOME

C:\Program Files\Java\jdk1.7.0_21.

 

java_00_thumb.jpg

 

Como criar o primeiro programa? Como se trata do primeiro tutorial, hoje vamos fazer algo bastante simples…o tipico Hello Worl mas modificado para o Pplware “Hello Pplware”. Para isso devem seguir os seguintes passos:

 

Passo 1) Criar um novo projeto

 

Depois de instalar o Android Studio, basta executar o mesmo e em seguida escolher New Project.

 

studio_00_thumb.jpg

 

Passo 2) Identificação da aplicação

 

Indicar o nome da aplicação (ex. PplwareApp). O modulo name, package name e project location são automaticamente preenchidos (o utilizador pode sempre mudar a informação para esses parâmetros).

 

Depois existem também a possibilidade de indicarem para que versão do Android vão programar. Para este exemplo vamos considerar que vamos programar para o Android 4.4 (target SDK) mas com suporte desde o Android 2.2 (minimum required SDK).

 

studio_01_thumb.jpg

Passo 3) Escolha do ícone

 

Escolha do ícone e parametrizações do mesmo

 

studio_02_thumb.jpg

Passo 4) Escolha do tipo de atividade

 

Em seguida escolhemos o modelo da atividade. Para este exemplo vamos escolher blank activity que irá criar uma aplicação simples, sem qualquer modelo de navegação definido (este ponto é definido no passo seguinte, em additional Features).

 

studio_04_thumb.jpg

Passo 5) Nome da atividade

 

Por fim indicamos o nome para a atividade e também o nome para o layout.

 

 

studio_05_thumb.jpg

 

Agora basta esperar uns segundos ate que seja criada a estrutura da nossa aplicação.

 

 

studio_06_thumb.jpg

 

Depois de termos a estrutura disponível, vamos ao projecto criar e dentro de PplwareApp > src > main > res > values > Strings alterarmos o “Hello World” para “Hello Pplware”.

 

studio_07_thumb.jpg

 

Por fim, basta carregar em Start para executar o emulador ou então descarregar a aplicação para um dispositivo real. Nota: Caso não tenham um emulador criado, basta ir a Tools > Android > AVD Manager

 

 

pplwareapp_2_thumb.jpg

 

..e aqui está está o resultado deste projeto.

 

 

pplwareapp_thumb.jpg

 

E está feito. Comparativamente ao eclipse, o Android Studio tem uma interface mais intuitiva e melhor organizada. Ao nível da performance, os dois IDE são bastante semelhantes…pois não estivéssemos nós a falar em java. Experimentem e diga-mos os que acharam.

 

Fonte: http://pplware.sapo....android-studio/




#579906 Xmlhttprequest

Posted by Balala on 06/05/2005, 14:13

Tutorial: Utilização do XMLHttpRequest (JavaScript), para apresentar conteúdo sem necessidade de atualizar a página.
Nível: Básico - Intermediário.
Requerimentos Extras (bibliotecas): Nenhum.

===============-===============

Hello there!

Antes de mais nada, algumas explicações. Esse tutorial tem como base para o script, praticamente, JavaScript, mas porque PHP? Simples, estamos combinando as duas linguaguens para podermos trabalhar com dados em formulários (pode ir muito além), que se alteram dependendo de opções selecionadas, sem ter que atualizar a página, para fazer a requisição PHP novamente.

No mais, vamos ao que interessa.

===============-===============

Como é feito essa consulta?
Você se pergunta. É algo simples como uma query string. Na verdade, é uma pura query string. Quem já trabalhou com a integração de PHP + Flash, para fazer loadMovie()'s dinâmicos, etc, terá uma maior afinidade com esse tutorial.

Basicamente a consulta consiste em:
- Alterar algum valor;
- Passar esse valor como parâmetro para o PHP;
- Retornar o resultado que desejamos;

Beleza, vamos começar por onde?
Para todos terem o mesmo ponto de inicio, vamos seguir um exemplo do inicio ao fim. Nossa idéia é:

- Apresentar SubCategorias, dependendo da Categoria principal selecionada.

Simples? Sim, algumas consultas ao Banco de Dados, e está resolvido nosso problema.

Para começar, vamos a criação das Tabelas:

CREATE TABLE `categorias` (
  `codigo` int(3) NOT NULL auto_increment,
  `nome` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`codigo`)
);

CREATE TABLE `subcategoria` (
  `codigo` int(3) NOT NULL auto_increment,
  `categoria` int(3) NOT NULL default '0',
  `nome` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`codigo`)
);

Prontinho, vamos entender a estrutura:

Tabela Categoria:
- codigo: Campo AUTO_INCREMENT para armazenar o código de cada categoria.
- nome: Campo para adicionar o nome da categoria.

Tabela SubCategoria:
- codigo: Campo AUTO_INCREMENT para armazenar o código de cada subcategoria.
- categoria: Campo para referenciar à qual categoria cada categoria faz parte.
- nome: Campo para adicionar o nome da subcategoria.

Eita, já temos as tabelas, agora vamos colocar alguns valores para elas:

INSERT INTO `categorias` VALUES (1, 'Refrigerantes');
INSERT INTO `categorias` VALUES (2, 'Frutas');
INSERT INTO `categorias` VALUES (3, 'Carnes');
INSERT INTO `categorias` VALUES (4, 'Cervejas');

INSERT INTO `subcategoria` VALUES (1, 2, 'Maçã');
INSERT INTO `subcategoria` VALUES (2, 3, 'Alcatra');
INSERT INTO `subcategoria` VALUES (3, 1, 'Sprite');
INSERT INTO `subcategoria` VALUES (4, 1, 'Fanta');
INSERT INTO `subcategoria` VALUES (5, 2, 'Laranja');
INSERT INTO `subcategoria` VALUES (6, 4, 'Skol');
INSERT INTO `subcategoria` VALUES (7, 4, 'Bohemia');
INSERT INTO `subcategoria` VALUES (8, 1, 'Coca-Cola');
INSERT INTO `subcategoria` VALUES (9, 3, 'Coxão Mole');
INSERT INTO `subcategoria` VALUES (10, 2, 'Limão');
INSERT INTO `subcategoria` VALUES (11, 3, 'Picanha');
INSERT INTO `subcategoria` VALUES (12, 4, 'Brahma');

Certo, já temos algumas informações nas tabelas, vamos a parte que interessa agora.

===============-===============

Como apresentar as Categorias?
Para realizar a consulta das categorias, simplesmente, criamos nossa query selecionando os campos desejados:

SELECT * FROM categori<span style='color:green'>as ORDER BY nome ASC

Estamos selecionando todos os campos de todos os registros, ordenados pelo nome em ordem crescente (A-Z).

E como apresentar no form tudo isso?
Vamos criar nossa página então:

<select name="categoria">
	<option></option>
<?php
$consulta = mysql_query("SELECT * FROM categorias ORDER BY nome ASC");
while( $row = mysql_fetch_assoc($consulta) )
{
echo "<option value=\"{$row['codigo']}\">{$row['nome']}</option>\n";
}
?>
</select>

Pronto, já temos um select com todas as categorias e um campo em branco no inicio, mas porque esse campo em branco? Pois nossa ação de XMLHttpRequest será no evento onchange, que é executa ao alterar o valor inicial.

Como ficaria nosso onchange?

<select name="categoria" onchange="pesquisar_dados( this.value )">

Para os conhecedores de JavaScript, chamamos uma função pesquisar_dados e passamos como um parâmetro, o value do select.

Uipi! Até agora, tudo beleza, e como montar o select para SubCategorias?!
Veja e surpreenda-se pequeno Gafanhoto.

<select name="subcategoria"></select>

Estava com preguiça, e vai ficar só assim nosso select. :P

Na verdade, os valores para ele, vai depender da Categoria selecionada, então, por inicio, não atribuimos nenhum valor à ele.

function pesquisar_dados()
Ahhh bom, achei que nunca iriamos chegar aqui. Veja o que seria essa função para receber o value da categoria selecionada:

function pesquisar_dados( valor )
{
  http.open("GET", "consultar.php?id=" + valor, true);
  http.onreadystatechange = handleHttpResponse;
  http.send(null);
}

Vamos entender ela:

"Abrimos" a página consultar.php?id=X, digo "abrimos", pois na verdade, essa janela não será apresentada ao usuário, só será processada puxaremos o valor retornado. Logo após, aguardamos a resposta do processamento da página, e assim que finalizado, chamamos a nova função handleHttpResponse. Que processará nossa resposta.

function handleHttpResponse
Essa função tem a finalidade de "pegar" o resultado da página processada, e apresentar no seu defido lugar. Poderiamos jogar em um textarea, uma <div>, um <p>, ou até mesmo um alert.

function handleHttpResponse()
{
  campo_select = document.forms[0].subcategoria;
  if (http.readyState == 4) {
    campo_select.options.length = 0;
    results = http.responseText.split(",");
    for( i = 0; i < results.length; i++ )
    { 
      string = results[i].split( "|" );
      campo_select.options[i] = new Option( string[0], string[1] );
    } 
  }
}

OOOOOOO LOOOOOOCOOOOOOOO MEEEEEUUUU!!! By Fausto Silva

Calma, calma, não corram. Vamos entender:

Antes de mais nada, definimos que campo será o receptor dos novos dados. Em seguida, verificamos se o estado do retorno é igual 4 (concluído), caso seja, definimos o campo receptor como 0 de length, ou seja, eliminamos todos as opções que existiam. Logo após, explodimos a resposta retornada pela nossa execução por ",", ou seja, cada SubCategoria, será separada por ",". Após isso, para cada índice retornado, explodimos ainda por "|", mas por que isso, você se pergunta, simples, nosso select não é somente 1 valor, mas 2, uma para a propriedade value e outro para a apresentação, primeiro a apresentação e em seguida o value. E por fim, adicionamos a opção ao nosso select.

OBA! Acabamos!!! Estamos vivos!!!!!
Calma jovem Anakin, o lado negro da força está por vir. Teríamos acabado se não tivessemos tantos navegadores por ai afora, e cada um com seu método de interpretação.

Como resolver? Simples, com mais uma função extra. Essa não precisará que nada seja alterado, afinal, é somente para identificação do Navegador e Suporte ao XMLHttpRequest.

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
var http = getHTTPObject();

Somente uma passagem rápida por ela, definimos a nova função, e veja o detalhe, se você utilizar alguma IDE para o desenvolvimento dessas páginas, é bem provavel que identificará parte do código como um comentário, mas não é, não apague ;)

Depois de fazer toda a verificação, a função é chamada e passada seu valor à variável global http.

Agora acabou?!
Técnicamente sim, mas como criar a página para retornar os resultados? Bom, agora entra nosso amigão PHP. Como vimos, cada registro precisa ser separado por ",", e a apresentação do value deve ser separado por "|".

<?php
$con = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("base_dados");

$categoria = addslashes($_GET["id"]); // pegamos o id passado pelo select
$consulta = mysql_query("SELECT * FROM subcategoria WHERE categoria = '$categoria'"); // selecionamos todas as subcategorias que pertencem à categoria selecionada
while( $row = mysql_fetch_assoc($consulta) )
{
  echo $row["nome"] . "|" . $row["codigo"] . ","; // apresentamos cada subcategoria dessa forma "NOME|CODIGO,NOME|CODIGO,NOME|CODIGO,...", exatamente da maneira que iremos tratar no JavaScript
}
?>

Belezinha pessoas? Essa seria a página consultar.php, agora vejamos como ficaria a nossa página principal completa:

<?php
$con = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("base_dados");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
function pesquisar_dados( valor )
{
  http.open("GET", "consultar.php?id=" + valor, true);
  http.onreadystatechange = handleHttpResponse;
  http.send(null);
}

function handleHttpResponse()
{
  campo_select = document.forms[0].subcategoria;
  if (http.readyState == 4) {
    campo_select.options.length = 0;
    results = http.responseText.split(",");
    for( i = 0; i < results.length; i++ )
    { 
      string = results[i].split( "|" );
      campo_select.options[i] = new Option( string[0], string[1] );
    }
  }
}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}
var http = getHTTPObject();
</script>
</head>

<body>
<form name="formulario" method="post" action="">
<p><select name="categoria" onchange="pesquisar_dados( this.value )">
	<option></option>
<?php
$consulta = mysql_query("SELECT * FROM categorias ORDER BY nome ASC");
while( $row = mysql_fetch_assoc($consulta) )
{
echo "<option value=\"{$row['codigo']}\">{$row['nome']}</option>\n";
}
?>
</select></p>
<p><select name="subcategoria"></select>
</p>
</form>
</body>
</html>

E se eu não quiser um select, mas sim, um texto?
Simples, teriamos que alterar somente a função para tratar o retorno:

function handleHttpResponse()
{
  campo_text = document.forms[0].subcategoria;
  if (http.readyState == 4) {
    campo_text = http.responseText;
    
  }
}

Dessa forma, o campo <textarea> ou quaisquer outros campos, ou tags, receberiam o valor retornado pela consulta, bastando somente tratar todos os textos na consulta.

===============-===============

Dedicatória
A todos vocês e principalmente a minha mamãe pelo Dia das Mães :)
Mesmo tendo a certeza que ela não vai ler esse tutorial, mas:

Mommy, I love you! :)

Attached Files




#589230 Sistema de Busca do Fórum

Posted by Klaus on 25/05/2005, 12:16

Olá!

No fórum, temos a nossa ferramenta de busca, que permite a você encontrar respostas a seus problemas, mais rápido do que você possa imaginar. Para auxiliar na sua pesquisa, existem alguns truques que irei mostrar a vocês aqui! Vamos lá!

Em toda página que você estiver no fórum, você vai ver o link lá em cima, com uma lupa ao seu lado. http://forum.wmonlin....php?act=Search

Nota: Se você está visualizando a página de "Comunicados", como agora, clicando no link você automaticamente estará fazendo a busca somente nesta seção do fórum e nas seções dentro desta. Você pode mudar sem problemas aonde será feita a pesquisa na opção: "Pesquisar onde" ("Search where" para quem usa a interface em inglês)

Um pouco mais a direita você verá uma parte onde você pode escolher o limite de data: "Encontrar posts de..." ("Search posts from..." - interface em inglês), por padrão a pesquisa é feita em tópicos somente com menos de 30 dias de "idade", rs. Para tornar sua busca mais abrangente, use a última opção que ignora a "idade" do tópico.

Agora uns macetes para se achar o que você procura: Vamos supor que você esteja procurando algum tópico que fale sobre o: "Gmail do Google". Obviamente, você não escreverá o "do", somente "Gmail" e "Google" pois são as palavras-chave que você procura. Escrevendo-as na caixa de pesquisa, e clicando em pesquisar, você se surpreenderá e... Não encontrará nada!!!

O fórum está programado para pesquisar expressões, a menos que você especifique o contrário. Vejamos como:

gmail%google => Encontrará posts que possuam qualquer uma das palavras, ou mesmo as duas, em qualquer ordem.


gmail AND google => Encontrará posts que possuam obrigatoriamente "gmail" e "google".


gmail OR google => Encontrará posts que possuam ou "gmail" ou "google".


E para finalizar, se você souber que no tópico que você procura, tem um post do Klaus (o gostoso), você pode filtrar ainda mais sua pesquisa, preenchendo o campo ao lado, com o nome da pessoa ou parte dele.

Com isso, você achará praticamente tudo, com facilidade no fórum!

Dúvidas podem ser esclarecidas neste tópico!
[]´s


#1062597 ropzmxwi

Posted by GeorgeHartek on 03/08/2017, 22:41

https://www.flickr.c...57684018319904/https://bitbucket.org/snippets/shirleypbc1973w8/kMpE6A/ ALZip is a free archive compressor and extractor for Windows and Mac. Jan 30, 2017 Download Keka 1.0.11 (19.2 MB) Requires Requires Mac OS X 10.6 or newer: Keka 1.0.4 (19.3 MB) MD5. https://www.flickr.com/groups/3959949@N22/discuss/72157683911733534/ https://bitbucket.org/snippets/bernardobfa1969l2/yRq8zB/ Mobile Pro uses 3G or Wi-Fi communication to keep the user Load up your new Retina Mac with these awesome apps. This is the place for all of the best games and apps deals across all Hands-on: Khomo's 10.5-inch iPad Pro case with built-in Apple Pencil holder [Video]. Updated Top 100 Mac games with 18 new entries (to add more variety, Filter your search for the games you want from the categories below. https://www.flickr.com/groups/3960949@N22/discuss/72157686671920926/ https://www.flickr.com/groups/3562985@N21/discuss/72157683347977542/ Open 'Spotlight' by pressing the 'COMMAND' and 'SPACEBAR' keys at the same time. Compatible with Apple Mac; Licence: 1 user / lifetime; Office suite: Students, faculty and staff may download Microsoft Office under the university license agreement. Be sure to remove the Microsoft User Data folder in Documents. http://exchange.2take.me/Forum/viewtopic.php?f=10&t=9051 http://forum.balza3d.it/viewtopic.php?f=12&t=1496 http://konsumentenschutzforum.ch/viewtopic.php?f=13&t=1742 http://portalmototurismo.com.br/viewtopic.php?f=18&t=2478 http://fororiego.com/viewtopic.php?f=7&t=4167 http://google.com/q=b68ahuzn


#522844 Tutorial Php - Iniciante

Posted by Balala on 19/01/2005, 13:44

Hello there, the angel from my nightmare...

Tá bom, tá bom, não foi um começo nada muito bom, mas acredite, vai piorar =) . Estamos aqui reunidos por um motivo em comum, não? Queremos aprender PHP, ou não queremos, mas temos. Tudo beleza então, é só efetuar um depósito de R$ 10,00 na conta XYZ-0 que eu lhe envio o Suco de Laranja Mastering PHP, é só beber duas vezes ao dia, que você aprende PHP em 78 horas.

É infelizmente não é um jeito fácil dessa maneira que irá realmente aprender PHP. Será um caminho árduro e cheio de muralhas pela frente, muralhas mesmo, pedras são pequenas para atrapalhar... Mas eu ficar contando historinhas ou piadinhas não vai ajudar em muita coisa, então, vamos ao que interessa.

Introdução
Caso você já tenha tido a oportunidade de ler outro tutorial, provavelmente já viu que PHP é uma linguaguem Server-Side, ou seja, que é executada no, e somente, no servidor. Diferente do JavaScript por exemplo que é uma linguaguem Client-Side, executada no cliente (internauta).

Dessa forma, há coisas fora do nosso alcance para realizar no PHP. Como por exemplo, alterar a cor de um botão ao internauta pressionar a letra "b". Isso está sendo executado aonde? No servidor ou no cliente? Já pensando em nosso fórum, faça essa pergunta para você mesmo antes de criar um tópico. Isso é ou não é relacionado à PHP?

Como vamos ver desde ponto em diante, comentários em alguns scripts, vamos ver as possiveis formas de adicionar um comentário no PHP.

<?php
// Comentário de 1 linha

# Comentário de 1 linha

/* Comentário em bloco

segue comentado até finalizar o bloco

com */
?>

O que vamos ver nesse tutorial?
Antes de prosseguir, vamos deixar claro que, estou considerando que você já está com um servidor web com o PHP rodando em sua máquina, ou com um servidor online. Configurações padrões do php.ini 4.3.0+ (register_globals = off).

Vou tentar, através desse tutorial, abranguer os primeiros passos dado ao PHP, elevando um pouco a dificuldade em cada passo que damos. Não é minha intenção passa funções relacionadas à banco de dados nesse primeiro tutorial, mas para um segundo, isso seria o foco. Então vamos parando com o lero-lero e começar a ralar ;)

"Adeus Mundo!"
Por que sempre o famoso "Olá Mundo!"? Vamos estar nos escondendo dele ao tentar aprofundar em PHP. Quanto mais você se interessa em aprender, mais festas deixará de participar, menos garotas irá conhecer e mais sóbrio irá ficar (estou em dúvida se isso é um fato bom ou ruim).

- Nossa, mas ele sempre tira tempo para outra piadinha horrível...

Táááááá booooooooom! Todas as páginas, para serem executados os códigos/instruções PHP, precisam ter sua extensão .php (.php3 está ficando para trás). Sabemos qual a extensão das páginas para serem consideradas PHP, e agora, como eu crio um código PHP? Por padrão, um código PHP é iniciado com a tag <?php e encerrado com ?>. Não vamos nos ater à outras tags, mas só para conhecimento existem as opções:

<? ?>
<% %>
<script languague="php"> </script>

Certo, vamos criar nossa página "tut01.php" e "limpe" o código fonte dela, não vamos trabalhar com html ainda, somente com a saída PHP. Vamos iniciar um bloco de código PHP e fazer uma saída para o navegador.

<?php
echo "Adeus Mundo!";
?>

Como diria meu amigo, Jack Estripador, vamos por partes, ou melhor, por linhas.
Linha 01: <?php => Iniciamos o bloco PHP;
Linha 02: echo "Adeus Mundo!"; => echo é uma função do PHP para imprimir uma saída no navegador. Escrevemos a saída entres aspas pois não estamos trabalhando com variáveis ainda. Utilizamos o ";" no final de cada linha de comando, caso contrário um erro é gerado;
Linha 03: ?> => Encerramos o bloco PHP.

Salvamos essa página e publicamos no servidor. A única saída que temos no navegador será "Adeus Mundo!" (sem as aspas). O código fonte também omite qualquer outra saída, sendo assim, o PHP somente apresentará para o usuário o que for mandado apresentar.

- Certo, mas por que o Joãzinho usa o print? Não tem diferença?

Embora muitos digam que não, tem sim. Claro, nada que seja muito utilizado em casos "normais", mas que há uma diferença, há. Tempo de execução, exatamente iguais, sem diferença nisso. Digamos que a única visivel seja, print retorna para uma variável TRUE ou FALSE. (lembrando, essa parte é somente para tirar a dúvida de algumas pessoas em relação a comparação de echo e print, não há necessidade de decorar nada daqui).

<?php
$print = print "Teste";
// A saída será Teste, mas agora apresente a variável

echo $print;
// Saída 1 ou TRUE
?>

Eba! Já sei apresentar um conteúdo no navegador
Agora vamos começar a complicar um pouco mais. Vamos ver como apresentar um mais número de saídas no mesmo bloco, e logo em seguida, começaremos a utilizar algumas variáveis.

<?php
echo "Nome:";
echo "Luciano";
?>

Mas preciso realmente preciso utilizar duas vezes echo?!?! Não é necessário, para isso, nós utilizamos a concatenação "." (em outras linguaguens é mais comum ver o símbolo "+" para concatenação, mas no PHP é o "." mesmo).

<?php
echo "Nome:" . "Luciano";
?>

Você se pergunta, qual a vantagem disso? Poderia colocar os dois textos juntos. Sim, realmente poderia, mas é uma introdução à concatenação. Agora veremos a utilização de variáveis.

O que diabos são variáveis?
São apenas blocos de memória para armazenamento de alguma informação. Texto, números, arquivos, etc... Novamente, diferente de outras linguaguens, no PHP você não é obrigado a definir o tipo de variável que deseja utilizar (int, float, bool, ...). Vamos à alguns exemplos:

<?php
$minha_variavel = "Meu texto";
?>

Vamos seguir o exemplo do nosso amigo Jack Estripador, por partes. Como podem ver, para declarar uma variável iniciamos o texto com o caracter "$", ele é que indica que o texto a seguir será uma variável. Algumas observações quanto à variáveis:

- Você não pode iniciar um nome de variável com números, ex: $1. Mas pode utilizar nas demais partes do nome, ex: $a1;
- O PHP é case-sensitive (há diferenças entre $nome, $Nome e $NOME);
- Utilize sempre variáveis com nomes indicando o seu conteúdo, para simplificar a manutenção de terceiros e até mesmo a sua.

Tenho uma variável, o que faço com ela?
Digamos que a base de todas as linguaguens de programação são variáveis, pois, se não precisa-se de conteúdos variáveis, por que programaria? Simplesmente utilizava HTML.

Vamos à um outro código:

<?php
$nome = "Luciano";
$idade = 19;
?>

Declaramos duas variáveis no exemplo acima, uma chamada $nome, com o valor "Luciano" e outra, chamada $idade, com o valor 19. Por que não foi utilizado aspas para inserir o valor 19? Simples, variáveis do tipo texto (text) precisam ser inseridas entre aspas, já as numerais (int, float, ...) você simplesmente precisa informar o número.

Beleza, agora temos duas variáveis e não fizemos nada com elas...
Calma lá! Vamos juntar tudo que vimos até agora:

<?php
$nome = "Luciano";
$idade = 19;
echo "Olá, meu nome é " . $nome . " e tenho " . $idade . " anos.";
?>

Aqueceu a mente agora? Jack neles:

$nome = "Luciano" => Simplesmente declaramos uma variável, como haviamos feito anteriormente;
$idade = 19 => Mesmo que o anterior, declaração de outra variável;
echo ...... => Complicou? Bom, temos a primeira parte "Olá, meu nome é " que é a apresentação de um texto estático para o navegador, utilizamos o "." para adicionar outro valor à apresentação, $nome aqui apresentamos o valor da variável $nome, veja que não é escrito no navegador a palavra "$nome", mas sim "Luciano", adicionamos outro bloco de texto estático, o valor da variável $idade, e por fim, " anos.".

É isso então? Boa sorte no PHP e comece a trabalhar!


...........
É, infelizmente não é só isso não, temos muuuuuuuuito mais desafios pela frente. Que tal algumas funções básicas que podemos fazer trabalhando com variáveis:

strlen(TEXTO)
<?php
$nome = "Luciano";
echo "Seu nome tem " . strlen($nome) . " letras.";
?>

A funcionalidade da função strlen é de contar o número de caracteres que temos em determinada string (texto). Utilizamos a concatenação em uma função, como podem ver, podemos concatenar textos estáticos, variáveis e funções.

substr(TEXTO, INICIO, [ANDAR])
<?php
$nome = "Luciano";
echo "A primeira letra de seu nome é " . substr($nome, 0, 1);
?>

A função substr tem por objetivo "cortar" parte de um texto para a apresentação. O primeiro parâmetro passamos o texto a ser cortado, por segundo o caracter onde deve ser dado o inicio do corte (lembrando que começa do 0, não do 1), e por final, mas não obrigatório, quantos caracteres devem ser "andados", caso não passe nenhum valor, será até o final do texto.

trim(TEXTO)
<?php
$variavel = "   OI     ";
echo trim($variavel);
?>

trim elimina os espaços em branco do inicio e do final de um texto.

ucfirst(TEXTO)
<?php
$nome = "luciano";
echo ucfirst($nome);
?>

ucfirst capitaliza (existe essa palavra?!) a primeira letra de um texto.

strtoupper(TEXTO)
<?php
$nome = "Luciano";
echo strtoupper($nome);
?>

strtoupper transforma todas as letras de um texto em maiuscula.

strtolower(TEXTO)
<?php
$nome = "Luciano";
echo strtolower($nome);
?>

strtolower é a função inversa de strtoupper. Transforma todos os caracteres em minusculo.

str_replace(PESQUISA, SUBSTITUI, TEXTO)
<?php
$texto = "isso foi xxxxxx mesmo";
echo str_replace("xxxxxx", "****", $texto);
?>

str_replace procura por uma combinação de letras e a substitui em determinado texto. Outras opções nessa função podem ser vistas com a utilização de matrizes.

Captei! Vamos para Matrizes
Digamos que o monstro para muitos programadores iniciantes. Matrizes são grupos de valores em uma única variável. No PHP temos algumas maneiras para iniciar uma matriz:

<?php
$matriz_a = array("João", "Maria");
$matriz_b[] = "João";
$matriz_b[] = "Maria";
?>

Ambas teriam o mesmo conteúdo. Na primeiro forma ($matriz_a) declaramos que a variável é do tipo array (matriz) e em seguida passamos os valores para ela. Já na segunda, colocamos cada valor separamente. Caso não seja definido um índice para a matriz, ela se auto-inicia do 0 e também se incrementa de acordo com a necessidade.

<?php
$matriz = array("Oi", "Tchau");
echo $matriz[0]; // Oi
echo $matriz[1]; // Tchau
?>

Criamos nossa matriz, e em seguida apresentamos os valores dela, como não definimos índice em nenhum dos casos, ela se iniciou no 0 e foi se incrementando.

Mas como definir um índice?
Vamos ver nas duas formas:

<?php
$matriz = array(5 => "João", "indice" => "Maria");
echo $matriz[5]; // João
echo $matriz["indice"]; // Maria
?>

<?php
$matriz[5] = "João";
$matriz["indice"] = "Maria";
echo $matriz[5];
echo $matriz["indice"];
?>

Certo, mas matriz não tem vantagem nenhum em relação às variáveis normais...
10 minutos e você mudará completamente de idéia. Vamos criar uma lista de nomes em uma variável e apresenta-las:

<?php
$nome1 = "Luciano";
$nome2 = "João";
$nome3 = "Maria";

echo $nome1;
echo $nome2;
echo $nome3;
?>

Divertido, não? Imagine fazer dessa forma para 500 nomes? Eu não queria ser programador nesses casos... Agora vejamos com matrizes:

<?php
$nomes = array("Luciano", "João", "Maria");
foreach( $nomes as $nome ) {
  echo $nome;
}
?>

NÃO!!! Não desista agora. Nosso amigo Jack vai explicar melhor tudo isso:

$nome = array(...) => Criamos nosso array, nada de novo
foreach( $nomes as $nome ) { => Opa, algo novo aí. Para quem conhece inglês já deve ter imaginação do que isso faz, foreach (para cada):

para cada( $nomes como $nome )

Ele irá passar por TODOS os valores da matriz e copiar o seu valor para a variável $nome. Interessante não? É como se executá-se-mos o código tantas vezes quanto há valores na matriz.

Utilizamos "{" e "}" para determinar o inicio e fim do nosso comando foreach. Tudo que está entre eles será repetido.

Vamos à outro exemplo com o foreach:

<?php
$nomes = array(5 => "Luciano", 10 => "João", "indice" => "Maria"); // Criamos a matriz definindo seus índices
foreach( $nomes as $indice => $valor ) {
  echo $indice . " = " . $valor;
}
?>

ixi, fedeu? Calma lá, o que temos de novo nessa parte? ( $nome as $indice => $valor ), dessa vez, ao invéz de passar somente o valor de cada índice na matriz, estamos passando o nome do índice. Lembrando, a primeir váriavel receberá o nome do índice e a segunda o seu valor.

Matrizes, basicamente é isso, sua definição e utilização. Vamos passar por algumas funções que envolvem matrizes e dar mais valor à essas pérolas da programação.

Lá vem bomba... Condicional
Qual a vantagem de ter um conteúdo dinâmico em seu site se ele não conseguir decidir qual caminho tomar? Vamos ter uma introdução às condicionais agora if else

<?php
$nome = "Luciano";

if( $nome == "Luciano" ) {
  echo "Você realmente é o Luciano";
}
?>

Como vimos anteriormente, "{" e "}" servem para definir um inicio e um fim a um comando. if estará se perguntando SE o valor da variável $nome for igual à "Luciano". Se sim, o código entre "{" e "}" é executado, caso contrário, nenhuma ação é tomada.

Outro detalhe é, para definir valores à variáveis, utilizamos "=", para comparar valores "==". E uma terceira opção seria "===", que compara também o tipo da variável, além de seu valor (utilizada para diferenciar 0 de FALSE, por exemplo).

Agora veremos para não deixar passar em branco nossa condicional, a utilização do comando else:

<?php
$idade = 19;
if( $idade >= 18 ) {
  echo "Maior de idade";
} else {
  echo "Menor de idade";
}
?>

Nossa comparação dessa vez não consulta por um valor igual, mas sim, ">=" (maior ou igual). Somente aplicada em números. Caso o valor da variável $idade não seja >= à 18, a instrução else é executada.

Com isso já é possivel fazer uma pesquisa em uma matriz, por exemplo:

<?php
$nomes = array("João", "Maria", "Carlos", "Ana", "Paulo", "Bruna");
foreach( $nomes as $nome ) {
  if( $nome == "Ana" ) {
    echo "Ana encontrada";
  }
}
?>

O que temos no script acima? Criamos uma matriz com uma lista de nomes, em seguida, varremos toda a matriz, passando cada valor para a variável $nome. Dentro do loop para cada valor na matriz, verificamos se o valor do $nome é igual à "Ana" se for, apresentamos a mensagem "Ana encontrada".

Alguns erros comuns nesses casos:

<?php
$nomes = array("João", "Maria", "Carlos", "Ana", "Paulo", "Bruna");
foreach( $nomes as $nome ) {
  if( $nome == "Ana" ) {
    echo "Ana encontrada";
  } else {
    echo "Ana não encontrada";
  }
}
?>

Não que esse esteja errado, mas provavelmente não trará a saída desejada, pois, repare bem, em cada loop do comando foreach ele executa a condicional, pegamos o primeiro caso, "João", como "João" é diferente de "Ana", ele executa o comando else, apresentando, dessa forma, várias vezes "Ana não encontrada". Para executar da maneira desejada esse script, precisamos de uma variável conhecida pelo nome de flag.

Pronto, só faltava uma bandeira mesmo no PHP...
Nada disso, flag é o nome dado à uma variável que tem apenas um valor para comparação, na maioria das vezes TRUE ou FALSE (VERDADEIRO ou FALSO). Vejamos como fica nosso exemplo dessa forma:

<?php
$nomes = array("João", "Maria", "Carlos", "Ana", "Paulo", "Bruna");
$flag = false;
foreach( $nomes as $nome ) {
  if( $nome == "Ana" ) {
    $flag = true;
  }
}
if( $flag ) {
  echo "Ana encontrada";
} else {
  echo "Ana não encontrada";
}
?>

Jack?!?!

Criamos a matriz, definimos nossa $flag como false (falso), pois "Ana" não foi encontrada dentro da matriz ainda, varremos a matriz passando o valor para a variável $nome, se $nome for igual a "Ana" alteramos nossa $flag para true (verdadeiro). Terminando completamente o loop, executamos nossa condicional, repare que não temos realmente uma comparação a ser feita, por que isso? pois na verdade toda comparação retorna TRUE ou FALSE, ex: 1 == 2 FALSE, 5 == 5 TRUE, e assim por diante. Como nossa variável já tem um valor boleano (TRUE ou FALSE), ela mesmo se encarregará de retornar a resposta para o comando if. Se $flag contér TRUE apresentamos "Ana encontrada", caso contrário, "Ana não encontrada".

Imagine agora, se estivessemos procurando por "João", era uma repetição sem sentido até o final da matriz, já que "João" é o primeiro nome, mas como consigo parar um loop?

<?php
$nomes = array("João", "Maria", "Carlos", "Ana", "Paulo", "Bruna");
$flag = false;
foreach( $nomes as $nome ) {
  if( $nome == "João" ) {
    $flag = true;
    break;
  }
}
if( $flag ) {
  echo "João encontrado";
} else {
  echo "João não encontrado";
}
?>

Nossa única diferença, o comando break, que simplesmente corta o loop no momento que for encontrado o nome que procuramos.

Outras formas de Loop
Vamos ver algumas outras formas de loop para utilizar não somente em arrays. Vamos para a primeira delas, while:

<?php
$contagem = 1;
while( $contagem <= 10 ) {
  echo $contagem;
  $contagem = $contagem + 1;
}
?>

O comando while (enquanto) executa determinada função enquanto a sua condicional for verdadeira. Jack, venha cá:

while( $contagem <= 10 ) => Enquanto contagem for menor ou igual à 10, apresentamos o valor de $contagem no navegador e alteramos o valor de $contagem para $contagem + 1, ou seja, um a mais que o seu valor anterior.

Sim, muitas vezes vocês vão conseguir fazer os chamados loops infinitos, ou seja, ele vai ficar em execução até estourar o tempo limite do PHP.

Um exemplo de loop infinito (não execute =D):

<?php
$contagem = 1;
while( $contagem <= 10 ) {
  echo $contagem;
}
?>

Veja que fazemos praticamente a mesma ação que a acima, mas esquecemos de aumentar o valor da variável $contagem, ou seja, ela sempre terá seu valor igual à 1, nunca passará de 10.

Outro comando para loop que é disponivel no PHP é o for, que, basicamente, é o mesmo que o while, mas não precisamos controlar nossa contagem, como no exemplo acima.

<?php
for( $contagem = 1; $contagem <= 10; $contagem++ ) {
  echo $contagem;
}
?>

De certa forma mais simples que o while. Sua sintaxe é a seguinta:

for( INICIALIZACAO; CONDICIONAL; INCREMENTO )

Ou seja, na primeira parte iniciamos a $contagem, depois fazemos nossa condicional verificando se $contagem é <= à 10 e por último, aumentamos o valor da variável $contagem. Repare que dessa vez, utilizamos $contagem++ para aumentar a variável.

<?php
$numero = 5;

$numero++; // $numero é aumentado em 1
$numero--; // $numero é diminuido em 1

$numero += 10; // $numero é aumentado em 10
$numero -= 10; // $numero é diminuido em 10

$numero = 5;
$a = $numero++; // $a recebe $numero (5) e então $numero é aumentado em 1

$numero = 5;
$a = ++$numero; // $numero é aumentado em 1 e então passa o novo valor (6) para $a

$numero = 5;
$a = $numero--; // $a recebe $numero (5) e então $numero é diminuido em 1

$numero = 5;
$a = --$numero; // $numero é diminuido em 1 e então passa o novo valor (4) para $a
?>

Há também outros comandos para loop como do... while / while... do Mas que teria a mesma sintexa do comando while, deixaremos eles de fora por enquanto.

Ahhhh, acabou
Exato, infelizmente acabou... Tudo precisa de um começo, um meio e um fim. Bom, estamos quase em 20% :) Estou preparando outros tutoriais envolvendo funções de maior utilidade para o desenvolvimento de sites, mas espero que esse pequeno tutorial tenha servidor como uma introdução para quem procura aprender mais sobre PHP e as maravilhas que pode fazer com ele.

Qualquer dúvida, estou inteiramente a disposição para tentar lhe ajudar. Basta "perguntar" ;)

Quanto à liberdade para apresentar esse tutorial em outros fóruns, sites de download ou qualquer outro site de intuito educacional, sinta-se livre, escrevi esse tutorial pensando em ajudar quem está iniciando em PHP, quanto maior o número de atinguidos, melhor. Peço somente, que me reconheçam como autor dele, beleza então?

Attached Files




#1222457 Discounts! best makeup

Posted by papedlok on 04/03/2018, 14:09

Discounts! best mens hair wax

progect13.jpg
Products which fall under this return policy can be returned domestically, as long as they are unused and in the original packaging. No questions asked!
If a product that falls under this guarantee is found to be counterfeit, you will get a full refund (shipping costs included).

buy.png

READ MORE
watch automatic High Quality quartz ladies watch 2018 Trended Men Women Roman Numerals Faux Leather Band Skeleton Analog Sports Dress Wrist Watch W2E8D-in Lover Watches from Watches China watch omega Suppliers Children GPS Smart Watch Child Student Positioning Anti lost Tracker Locator Watches Russian English relogio masculino Gift E-in Lover Watches from Watches
China box for shipping Suppliers Letv X626 LeEco Le S3 x626 MetalBody Android 6.0 FDD LTE Mobile Phone Deca Core 2.3G Dual SIM 5.5 FHD 4G RAM 21M FingerPrint-in Mobile Phones from Cellphones Telecommunications jewelry jewelry OUKITEL Mobile Phone Oukitel MIX 2 Telephone 6G RAM 64G ROM 5.99 Full Screen MTK6757 Octa Core Fingerprint Android 7 Smartphone High Quality gift creative
China gift candy Suppliers China watch wall clock Suppliers Cheap horloge watch Cheap watch 3 China watch brand women Suppliers
AliExpress high quality products at wholesale prices
1pcs bunny tiger fox sloth sleep mask rest travel relax sleeping aid blindfold ice cover eye ( 3.98 $)
Modern fashion shopping girls patterns soft tpu back cases cover for iphone 4 4s 5 5s ( 1.40 $)
25w g9 fashionable led modern crystal pendant lamp with 3 lights fixtures hanging light lamparas lustres e pendentes ( 110.98 $)
New 5 inch car dvr camera rearview mirror digital video recorder with dual lens registrar camcorder full hd 1080p night vision ( 71.98 $)
i need help with my science homework purchase essay good essay questions how to write research paper first sentence of an essay
fast food nation essay spelling activities for homework homework vs no homework why do i want to go to college essay 5th grade science homework
writing essay conclusion great business plan writing how to papers help writing cover letter bcpm gpa calculator

CLICK ON THE BANNER
1.jpg


#1222179 Discounts! best produk

Posted by papedlok on 04/03/2018, 05:16

Discounts! best of beauty awards

progect12.jpg
Products which fall under this return policy can be returned domestically, as long as they are unused and in the original packaging. No questions asked!
If a product that falls under this guarantee is found to be counterfeit, you will get a full refund (shipping costs included).

buy.png

READ MORE
China Parkplatz Ausr stung Lieferanten High Quality watch automatic mechanical chelsea boots Agelocer Original Famous Brand Couple Watches Men Women Watches Mechanical Movement Date Day Waterproof Watch Minimalist Type -in Lover Watches from Watches High Quality refurbished mobile phones
High Quality damski zegarek High Quality watch mobile phone 2012 oukitel k10000 4g watch computer on tv Cheap alarm digital
China neo men Suppliers watch display case High Quality watch sizes for men rubber band China rate monitor watch Suppliers
Orlando Navy BlueBlue Reversible Leather Belt ( 132.00 $)
Cucumber seeds 100 japan mini cucumber vegetable and fruit seeds for home garden supply cucumis sativus ( 0.50 $)
Mink Unprocessed Raw Indian Wavy Virgin Hair Body Wave 4 Bundles Indian Body Wave Ms Lula Hair Products Raw Indian Virgin Hair ( 64.63 $)
Clear heel red leather pump ( 315.62 $) Moschino
ремонт клапанов гбц
outline for informative essay new york times essays critique of an article essay on illegal immigration nmr peak assignment
hotel rwanda essay essay writing site homework help games writing an interview essay essay writing on football
argumentative essay outline worksheet essay writing for students money can t buy happiness essay writing paper online writing essays for scholarships

CLICK ON THE BANNER
1.jpg


#1208794 Discounts! 2018 new makeup

Posted by sapedlok on 11/02/2018, 08:54

Discounts! beats products

progect11.jpg
Products which fall under this return policy can be returned domestically, as long as they are unused and in the original packaging. No questions asked!
If a product that falls under this guarantee is found to be counterfeit, you will get a full refund (shipping costs included).

buy.png

READ MORE
MeyJig Multifunctional Plastic Double Layer Dry Fruit Containers Snacks Seeds Storage Box Garbage Holder Plate Dish Organizer-in Storage Boxes Bins from Home Garden watch book 1 Set Chest Transmitter Strap + Watch Outdoor Cycling Sport Wireless Heart Rate Monitor Fitness reloj inteligente Watches-in Lover Watches from Watches China watch wireless Suppliers watch mobile phone q8
High Quality dropshipping women New Fashion Lovers Watches Women Men Funny Printed Quartz Wrist Watch Mens Women Dress Clock Watch Couple Gifts Relogio #JO-in Lover Watches from Watches High Quality watches luxury watch bracelet watch gold steel automatic watch
Cheap brand crossbody Fast Shipping!Unlocked Linksys SPA2102 Voip gateway Phone FXS Voip adater SPA2102 Voice over IP adater IP pbx pc controller wireless Cheap gun simulation High Quality kids kids
Rockbros bicycle light cycling bike rear light taillight egg bicycle accessories back heart light signal warning waterproof mtb ( 15.23 $)
grand theft auto iii бесплатно
Geneva Stainless Steel Body Diamond Quartz Watch Decorative Sub - dials Date for Women ( $6.57 )
Double Chiffon Silk Stole ( 68.60 $)
VCHOK M8 4.5 inch Android 5.1 4G Smartphone MTK6735 Quad Core IP68 Waterproof NFC SOS 16GB ROM 13.0MP Camera 275.39$
Original Xiaomi Mi Key 3.5mm Smart Quick Button ( $0.99 )
размер резиновой обуви
грм 405 купить
7a soft unprocessed malaysian straight virgin hair natural black color malaysian virgin hair straight 4pcs lot human hair weave ( 45.00 $)
Wireless fm transmitter bluetooth car kit mp3 player handsfree call radio modulator with usb tf speakerphone car charger ( 14.99 $)
what are the benefits of homework essay vs paper management case study case study business teachers marking
prentice hall essay scorer case study wikipedia college writing essay creative writing character short creative writing
how to critique a journal article creative writing classes for kids jmu essay writing philosophy papers how to write a paper presentation

CLICK ON THE BANNER
1.jpg


#1247261 which is better for erectile dysfunction tadalafil

Posted by HaroNism on 17/10/2022, 23:46

But surprisingly they allow drugs on the market by the FDA and are used on the public without documented research best place to buy generic cialis online This study was funded by the LeioMyoSarcoma Direct Research Foundation and the Liddy Shriver Sarcoma Initiative in September 2013


IPB Skin By Virteq