Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JackDenio

[Resolvido] Titulo pré-determinado por escolha de categoria..

Recommended Posts

Eu estava querendo fazer algo, que acredito que em js seja possível e como eu num tenho muita noçao, vo postar aqui e talvez alguém me de uma sugestão de como fazer..é o seguinte tem um formulário de cadastro de notícia e existe as categorias eu gostaria de que quando a pessoa escolhesse a categoria o titulo da noticia ja mudava automaticamente pro nome categoria e o número de vezes que ja foi cadastrada alguma notícia com essa categoria..entendem?

 

Ex: a pessoa vai cadastrar uma notícia com a categoria esportes ..ai automaticamente no titulo ou outro campo que seja,aparacerá assim .. esportes01, esportes02, esportes03, e assim por diante, bom a idéia do que eu quero é mais ou menos essa..

 

Se alguém entender ..hehe.. e puder me dar uma luz, fico muito agradecido...

Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza..é o seguinte..tenho um portal de informação...e quando a vou cadastrar uma noticia existe as opções de cadastra-las com categoria..ex: esporte,economia,diversão,gerais etc.. eu queria que quando escolhesse a categoria o titulo da noticia automaticamente me figurasse "esportes01 - aqui entraria o titulo colocado por mim"(esportes = categoria esportes e 01 é pq vai ser o primeiro registro, cadastrado nessa categoria,assim sendo se fosse eu cadastrar outra noticia com a categoria esportes ficaria esportes02..reconheceria o id_categoria de cada noticia) entende?

 

Isso pode não fazer muito sentido o pq de que eu quero isso, mas tem um interação quanto ao modo de exibição que quero usar..sera que fui claro agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao exibir a notícia cadastrada, o título deve ficar assim:

 

"Política 01 - Lula, dessa vez na Alemanha, disse que não viu nada."

 

Se for o que entendi, teria que ser com PHP, e não JavaScript.

 

Ao cadastrar a notíca seria cadastrada a categoria, e ao exibir seria algo do tipo:

 

PHP
....

Conexão com o BD

....

$seleciona = "SELECT id, categoria, titulo FROM noticias";

$query = mysql_query($seleciona) or die (mysql_error());

if (mysql_num_rows($query) == 0) {

     exit ("Nenhuma notícia cadastrada");

}

while ($dados = mysql_fetch_array($query)) {

     echo $dados["categoria"] . " " . $dados["id"] . " - " . $dados["titulo"];

     // O resultado seria semelhante à esse: Política 01 - Lula, dessa vez na Alemanha, disse que não viu nada.

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom GuttoSP, so que na verdade eu tinha pensado isso, funciona obvio,so que eu queria fazer dessa maneira que te disse so mesmo pra ter uma interatividade maior e pro esquema ao qual eu vou usar isso que na verdade é pra galeria de fotos de cada categoria fica melhor ao cadastrar ser dessa maneira como descrevi no primeiro post,uma vez que titulo não serão necessários,mas mesmo assim vlw pela força ai!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim beleza velho eu sei, so que em php e na verdade eu queria tentar fazer isso em js,mas cara vlw mesmo,não quis dizer nada mal, se soou assim desculpa..grande abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer fazer isso durante o cadastro, e não na exibição final da notícia, exibindo junto ao título, a categoria da notícia e a quantidade de notícias cadastradas com a mesma categoria.

 

Caso esteja correto, use ajax, para que no momento da seleção da categoria, uma busca seja feita para conferir a quantidade de registros cadastrados com a mesma categoria;

 

Sobre o ajax, tem esse link com um exemplo, basta adaptar

 

http://forum.imasters.com.br/index.php?showtopic=255857

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certíssimo vou dar uma olhada nesse link que você me passou ai e depois te falo por aqui...muito obrigado!!

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

[TÓPICO FONTE]

 

E ai GuttoSP..cara testei aqui e me da erro do tipo

alert("Houve um problema ao obter os dados:n" + req.statusText);
ao inves de fazer onBlur to usando

onChange="if (this.value != '') { buscaCNPJ(this.value); }"

Velho eu dei echo em todas minhas consultas e tudo funciona meu select esta assim:

<select onChange="if (this.value != '') { buscaORD(this.value); }">
	<option value="0">-- Selecione --</option>
	<?
	$sql="select * from foto_categoria order by nomecategoria";
	$exe=mysql_query($sql,$conexao);
	for ($i=0;$i<mysql_num_rows($exe);$i++) {
		$cat=mysql_fetch_array($exe);	
	?>
	<option name="id_categoria" id="id_categoria" value="<?=$cat['id_categoria'];?>"><?=$cat['nomecategoria'];?></option>
	<? } ?>
	</select>
Mas segue dando esse erro, que pode estar saindo errado..alguma idéia?

Abraço!!

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

Você se lembra do que estou querendo fazer neh? [...] vo postar aqui o script que fiz pra teste antes de adptar onde em verdade eu quero usar isso..o lance da estrutura da tabela é pro rcdesing neh?..

<form name="ordenar">
<select onChange="if (this.value != '') { buscaORD(this.value); }">
	<option value="0">-- Selecione --</option>
	<?
	$sql="select * from foto_categoria order by nomecategoria";
	$exe=mysql_query($sql,$conexao);
	for ($i=0;$i<mysql_num_rows($exe);$i++) {
		$cat=mysql_fetch_array($exe);	
	?>
	<option name="id_categoria" id="id_categoria" value="<?=$cat['id_categoria'];?>"><?=$cat['nomecategoria'];?></option>
	<? } ?>
	</select>
</form>
<div id="ordem" name="ordem"><?=$n_id;?></div>

A parte em php:

 

<?php 
		if(!empty($_GET["id_categoria"])) { 
				$id_pf = $_GET["id_categoria"];
				$sql = "SELECT * FROM noticia_foto WHERE id_noticia ='2' order by id_notfoto desc";// 2 aqui foi usado como ex:ja existindo, obvio o registro no bd
				$exe = mysql_query($sql,$conexao) or die (mysql_error());
				$pf = mysql_fetch_array($exe);
				$sql1="select * from foto_categoria where id_categoria = ".$id_pf;
	$exe1=mysql_query($exe1,$conexao);
	$pf1=mysql_fetch_array($exe1);
	$n_id=$pf1['nomecategoria'].$pf['id_notfoto'];
	}
?>

e o js:

function buscaORD(valor) {	 
				url = "http://meusite.com.br/testes/busca_ordem.php"+valor;
				req = null; 
				// Procura por um objeto nativo (Mozilla/Safari) 
				if (window.XMLHttpRequest) { 
						req = new XMLHttpRequest(); 
						req.onreadystatechange = processReqChange; 
						req.open("GET",url,true); 
						req.send(null); 
						// Procura por uma versão ActiveX (IE) 
				}
				else if (window.ActiveXObject) { 
						req = new ActiveXObject("Microsoft.XMLHTTP"); 
						if (req) { 
								req.onreadystatechange = processReqChange; 
								req.open("GET",url,true); 
								req.send(); 
						} 
				} 
		} 

		function processReqChange() {
				// apenas quando o estado for "completado" 
				if (req.readyState == 4) {
						// apenas se o servidor retornar "OK"
						if (req.status == 200) { 
								// procura pela div id="pagina" e insere o conteudo 
								// retornado nela, como texto HTML 
								document.getElementById('ordem').innerHTML = req.responseText; 
						} 
						else { 
								alert("Houve um problema ao obter os dados:n" + req.statusText); 
						} 
				} 
		}
Uma correção apenas em questão ao que eu tinha descrito no outro post é que aqui ja esta implementado a ideia à que isso se aplicaria à galeria de fotos das notícias.

 

Bem foi isso que eu fiz..tem algo errado?

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

Ai vai então..

CREATE TABLE `noticia_foto` (
  `id_notfoto` int(11) NOT NULL auto_increment,
  `id_noticia` int(11) NOT NULL default '0',
  `id_categoria` int(11) NOT NULL default '0',
  `titulo` varchar(80) NOT NULL default '',
  `conteudo` text NOT NULL,
  `img` text NOT NULL,
  PRIMARY KEY  (`id_notfoto`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6;

CREATE TABLE `foto_categoria` (
  `id_categoria` int(11) NOT NULL auto_increment,
  `nomecategoria` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id_categoria`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;

Ta ai..

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

Eu uso IE6 .. uma dúvida..viste que no meu select eu coloquei da seguinte forma:

<option name="id_categoria" id="id_categoria" value..
e não seria assim->

<select  name="id_categoria" id="id_categoria" ..
Mas de qualquer forma segue dando erro na pág..

 

Vlw.abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na função buscaORD, altere:

JAVASCRIPT

 

Para..

JAVASCRIPT

 

Poste o resultado.

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

busca_ordem.php

<?php
	header("Content-Type: text/html; charset=ISO-8859-1",true);
		if(!empty($_GET["id_categoria"])) {
				$id_pf = $_GET["id_categoria"];
				$sql = "SELECT * FROM noticia_foto WHERE id_noticia = '" . $id_pf . "' ORDER BY id_notfoto desc";// 2 aqui foi usado como ex:ja existindo, obvio o registro no bd
				$exe = mysql_query($sql,$conexao) or die (mysql_error());
				$pf = mysql_fetch_array($exe);
				$sql1 = "SELECT * FROM foto_categoria WHERE id_categoria = '" . $id_pf . "'";
				$exe1 = mysql_query($sql1,$conexao);
				$pf1 = mysql_fetch_array($exe1);
				$n_id = $pf1['nomecategoria'] . $pf['id_notfoto'];
				echo $n_id;
	}
?>

Antes de testar feche a janela do navegador pois os dados ficam no cache.

 

nome categoria e o número de vezes que ja foi cadastrada alguma notícia com essa categoria..

Da forma que você está fazendo ele exibe a categoria e a ID, e não o número de notícias com a categoria correspondente.

 

Para fazer a contagem das categorias deveria fazer um select, usando como critério a categoria, e exibir o mysql_num_rows no final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da forma que você está fazendo ele exibe a categoria e a ID, e não o número de notícias com a categoria correspondente.

 

Para fazer a contagem das categorias deveria fazer um select, usando como critério a categoria, e exibir o mysql_num_rows no final.

É verdade velho, mas mesmo assim esse sistema não esta funcionando,no js eu coloco

JAVASCRIPT
e me figura erro na pág , mesmo sendo pra me exibir o nº do id e não a quantidade..vo reformular minha query ainda que não influência nisso de funciona ou não funciona consulta..

Abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O sistema funciona perfeitamente, até a parte que postei originalmente. Com suas adaptações é que não funciona mais. Sua query estava com diversos erros. Qual foi o resultado depois de usar o arquivo busca_ordem.php que enviei?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o mais engraçado é que eu testei minha query em separado e ela funciona perfeitamente, com o busca_ordem que você me enviou não funcionou do mesmo jeito..vlw velho...!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altera

JAVASCRIPT
document.getElementById('ordem').innerHTML = req.responseText;

 

Por...

JAVASCRIPT
document.getElementById('ordem').value = req.responseText;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu GuttoSP, agora deu certo, depois de tanto lio, por fim ..valeu mesmo velho!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.