Ir para conteúdo

Arquivado

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

SHWE12

Não consigo enviar id atraves de list/menu

Recommended Posts

Bom dia Galera, é o seguinte.

Peguei um script para fazer que um list/menu carregasse automaticamente, quando escolhesse a categoria a subcategoria já carregasse automaticamente. Isso está funcionando corretamente, mas o problema está para enviar a Id da Subcategoria para o banco de dados. A categoria ele envia automaticamente, exemplo:

 

Categoria: Impressoras (Id 17)

Subcategoria: HP (Id 25)

 

Ele está enviando tanto a categoria quanto a subcategoria com o mesmo valor, 17.

 

Esta ai abaixo o código javascript e php tambem.

vlw....

 

cadastrar.php

<?
		  $sql = mysql_query("SELECT * FROM categoria");  
?> 
<script language="JavaScript" type="text/JavaScript"> 
function carregar(){ 
Combo1 = document.cadastrar.categoria; //ALTERE AQUI PARA SEU FORM E 1º SELECT 
Combo2 = document.cadastrar.subcategoria; //ALTERE AQUI PARA SEU FORM E 2º SELECT 
var url; 
url = 'remote.php?categoria='+Combo1[Combo1.selectedIndex].value; 
Combo2.options.length = 0; 
addItem(Combo2,"Aguarde...carregando","",false,Combo2.length) 
myIframe.location = url; 
Combo2.focus() 
} 

function inicia(){ 
local1 = new Array(); 
var maximo1, i; 
local1 = myIframe.loc; 
maximo1 = local1.length; 
Combo2.options.length = 0; 
for (i=0;i<maximo1;i++){ 
addItem(Combo2,local1[i][1],local1[i][0],false,Combo2.length); 
} 
} 

function addItem(obj,strText,strValue,blSel,intPos){  
	var newOpt,i,ArTemp,selIndex;  
	selIndex = (blSel)?intPos:obj.selectedIndex;  
	newOpt = new Option(strText,strValue);  
	Len = obj.options.length+1  
	if (intPos > Len) return  
	obj.options.length = Len  
	if (intPos != Len) {  
		 ArTemp = new Array();  
		 for(i=intPos;i<obj.options.length-1;i++)  
			  ArTemp[i] = Array(obj.options[i].text,obj.options[i].value);  
		 for(i=intPos+1;i<Len;i++)  
			  obj.options[i] = new Option(ArTemp[i-1][0],ArTemp[i-1][1]);  
	}  
	obj.options[intPos] = newOpt;  
	if (selIndex > intPos)  
		 obj.selectedIndex = selIndex+1;  
	else if (selIndex == intPos)   
		 obj.selectedIndex = intPos;  
}  
</script>

 

 

Arquivo remote.php

 

<? 

require ('../admin/permissao.php');
$conexao=@mysql_connect($servidor,$usuario,$senha) or exit ('erro de conexao');
	@mysql_select_db($base_dados,$conexao) or exit ('erro na conexão com o Banco');

$categoria = $_GET['categoria']; 
$auxsql = "SELECT categoria, subcategoria FROM subcategoria where categoria ='$categoria' "; 
$sql = mysql_query($auxsql); 
if(!$sql){echo mysql_error();exit();} 
?> 

<script> 
  loc = new Array(<?=mysql_num_rows($sql)?>) 
  for (i=0; i < <?=mysql_num_rows($sql)?>; i++) { 
		 loc[i] = new Array(2) 
				 for (j=0; j < 2; j++) { 
			 loc[i][j] = "0" 
		   } 
   } 

   <? $j = 0; 
	 while ($linha = mysql_fetch_array($sql)) {?> 
	  loc[<?=$j?>][0] = "<?=$linha[0]?>"; 
	  loc[<?=$j?>][1] = "<?=$linha[1]?>"; 
	  <? $j++; 
	  } 
   ?> 
   parent.inicia();  
</script>

Se alguem puder me ajudar.... vlw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, o erro parece ser no javascript. Vou mover para lá.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia.. nao tenho como rodar o teu codigo aqui... ate pq envolve o banco q nao tenho.

me parece que o erro, esta no retorno dessa parte:

while ($linha = mysql_fetch_array($sql)) {?> 
          loc[<?=$j?>][0] = "<?=$linha[0]?>"; 
          loc[<?=$j?>][1] = "<?=$linha[1]?>";
poste a estrutura da tabela, e tente trabalhar com um fetch_assoc, no lugar do fetch_array... nomear campos por numeros, nao deixa claro, quais colunas você esta selecionando.

 

 

Existem formas mais simples de fazer combobox dependentes.. vou tentar postar um mini-tutorial de noite..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá.. não era 'apenas para trocar'.. além disso, você precisa mudar as chaves do vetor, de numérica pra associativa.

Poste a estrutura da tua tabela.

 

Vai lá no phpMyAdmin, e exporta essa tabela. Ai cola o código SQL aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

-- phpMyAdmin SQL Dump

-- version 2.11.9.4

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Jul 24, 2009 as 04:07 PM

-- Versão do Servidor: 4.1.22

-- Versão do PHP: 5.2.6

 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

 

--

-- Banco de Dados: `fabricio_lojaexcelent`

--

 

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

 

--

-- Estrutura da tabela `produtos`

--

 

CREATE TABLE IF NOT EXISTS `produtos` (

`id` smallint(5) NOT NULL auto_increment,

`cod_produto` varchar(20) NOT NULL default '',

`nome` varchar(60) NOT NULL default '',

`valor` decimal(10,2) NOT NULL default '0.00',

`valor_prazo` decimal(10,2) NOT NULL default '0.00',

`parcelas` mediumint(10) NOT NULL default '0',

`foto` varchar(40) NOT NULL default '',

`peso` decimal(10,2) NOT NULL default '0.00',

`descricao` mediumtext NOT NULL,

`qtde_estoque` mediumint(5) NOT NULL default '0',

`categoria` varchar(5) NOT NULL default '',

`subcategoria` mediumint(5) NOT NULL default '0',

`destaque` varchar(10) NOT NULL default '',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=35 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce nao estava trabalhando com a tabela de subcategoria ??

$auxsql = "SELECT categoria, subcategoria FROM subcategoria where categoria ='$categoria' ";
essa estrutura ai, eh da produtos

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.