Ir para conteúdo
Fórum Script Brasil
  • 0

preencher combobox com valores de outra


Koryander

Pergunta

Estou com uma duvida há mais de mes, eu não consigo salvar o conteudo das combobox. Eu consigo fazer uma ser preenchida dependendo do valor da outra, mas na hora de salvar, só salva o conteudo da segunda combobox e as vezes não salva nenhuma.

alguém com mais experiencia poderia me ajudar.

Desde já agradeço

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

add.php

<form id="FormName" action="added.php" method="post" name="FormName">
<script type="text/javascript" src="js.js"></script>

<?php
$conexao = mysql_connect("localhost","root");
if (!$conexao)die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());

$banco = mysql_select_db("anna17_loja17",$conexao);
if (!$banco)die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());?>


<table width="448" border="0" cellspacing="2" cellpadding="0">


<tr><td><td><td>
  
<?php
$sql = "SELECT * FROM codigobarra ORDER BY id"; 
$resultado = mysql_query($sql); 
$linha = mysql_num_rows($resultado); 
$registro = mysql_fetch_array($resultado); ?>

<select name="codproduto" id="codproduto" onChange="mostrarproduto(this.value)">
<option value="00">Selecione</option>
                    
<?php while ($dados = mysql_fetch_array($resultado, MYSQL_ASSOC)){ ?>

<option value="<?php echo $dados["id"];?>"> <?php echo $dados["produto"];?> </option> <?php }?></select>

<div id="produtos"></div></td>
added.php
<?php
include("add.php");

$conexao = mysql_connect("localhost","root");
if (!$conexao)die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());
$banco = mysql_select_db("anna17_loja17",$conexao);
if (!$banco)die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());



//$temp = array_values($_POST);
//$cod = implode($temp); 

$codigo = $_POST['codproduto'] ." ".$_POST['codtipo']." " .$_POST['codmodelo']." " .$_POST['codcomplemento'];
$descricao = $_POST['produto'].$_POST['tipo'].$_POST['modelo'].$_POST['complemento'];

$query = "INSERT INTO teste (produto, codigodebarra) VALUES ('$cod', '$cod')";

$resultado = mysql_query($query) or die ("Could not execute query : $query." . mysql_error());

?>

<pre><?php print_r($_POST) ?></pre>
produtos.php
<?php

$conexao = mysql_connect("localhost","root");
if (!$conexao)die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());

$banco = mysql_select_db("anna17_loja17",$conexao);
if (!$banco)die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());





E esse é o ajax que monta a combo dinamica

js.js

function iniciaProduto()
{
    //verifica se o navegado é o Iternet Explorer ou outros navegadores
    if(window.ActiveXObject)
    {
        //estância o objeto ActiveX
        ajax = new ActiveXObject("Microsoft.XMLHTTP");                
    }
    else
    {
        ajax = new XMLHttpRequest();
    }
    
    return ajax;
}

function carregaproduto()
{
    //limpa as codproduto já existentes
    document.getElementById('produtos').innerHTML = "";
    //pega o local onde a combo de codproduto será exibida]
    var local = document.getElementById('produtos');
    
    //cria uma combo select
    var combo = document.createElement('select');
    combo.setAttribute('name','codproduto');
    combo.setAttribute('id','codproduto');    
    
    var opcao = document.createElement('option');
    opcao.setAttribute('value', 00);
    opcao.appendChild(document.createTextNode("Carregando..."));
    
    //adiciona essa opção na combo
    combo.appendChild(opcao);
    
    //coloca a combo dentro do div
    local.appendChild(combo);
}

function mostrarproduto(id)
{
    //informa que está carregando as codproduto
    carregaproduto();
    
    
    //inicia o AJAX
    ajax = iniciaProduto();
    
    ajax.onreadystatechange = mostrarproduto2;
    
    //abre a conexão com o servidor
    ajax.open("GET", "produtos.php?id="+id);
    
    //envia a requisição para o servidor
    ajax.send();
}

function mostrarproduto2()
{
    //verifica o status da requisição, se for o processamento está completo 
    if (ajax.readyState == 4) 
    {             
        //verifica o número do status, se for diferente de 200 tem algum erro 
        if (ajax.status == 200) 
        {
            var xml = ajax.responseXML;
            if(xml != null)
            {
                if(xml.hasChildNodes())
                {    
                    //limpa as codproduto já existentes
                    document.getElementById('produtos').innerHTML = "";
                    
                    //pega o local onde a combo de codproduto será exibida]
                    var local = document.getElementById('produtos');
                    
                    //cria uma combo select
                    var combo = document.createElement('select');
                    combo.setAttribute('name','codproduto');
                    combo.setAttribute('id','codproduto');
                    
                    //pega todas as codproduto qae retornou do XML
                    var nos = xml.getElementsByTagName('codproduto');
                    
                    //faz um loop para percorrer todas as tags produto
                    for(cont = 0; cont < nos.length; cont++)
                    {
                        //verifica se é o IE
                        if(window.ActiveXObject)
                        {                        
                            var idcodproduto = nos[cont].childNodes[0].firstChild.nodeValue;
                            var codproduto = nos[cont].childNodes[1].firstChild.nodeValue;
                        }
                        else
                        {
                            var idcodproduto = nos[cont].childNodes[1].firstChild.nodeValue;
                            var codproduto = nos[cont].childNodes[3].firstChild.nodeValue;
                        }    
                        
                        //cria um option do select
                        var opcao = document.createElement('option');
                        opcao.setAttribute('value', idcodproduto);
                        opcao.appendChild(document.createTextNode(codproduto));
                        
                        //adiciona essa opção na combo
                        combo.appendChild(opcao);
                        
                    }
                    
                    //coloca a combo dentro do div
                    local.appendChild(combo);
                }
            }
        } 
        else 
        {
            alert("Houve um problema ao carregar a lista de codproduto:\n" + ajax.statusText);
        }        
    }     
}


$codigo  = "SELECT * FROM codigobarra WHERE id = '{$_GET['id']}'";
$resultado = mysql_query($codigo) or die(mysql_error());

header("Content-Type: application/xml");
$xml  = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\r\n";
$xml .= "<produtos>\r\n";
$totalBanco = 0;

while($dados = mysql_fetch_array($resultado))
{
    
    $xml .= "\t<codproduto>\r\n";
    $xml .= "\t\t<id>{$dados['id']}</id>\r\n";
    $xml .= "\t\t<nome>{$dados['codproduto']}</nome>\r\n";
    $xml .= "\t</codproduto>\r\n";
}

$xml .= "</produtos>\r\n";
echo $xml;

?>

Se você puder me ajudar car vai ser uma benção rsrsr

E a minha tabela esta assim:

-- Banco de Dados: `anna17_loja17`

--

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

--

-- Estrutura da tabela `codigobarra`

--

CREATE TABLE IF NOT EXISTS `codigobarra` (

`id` int(4) unsigned zerofill NOT NULL,

`produto` varchar(255) CHARACTER SET latin1 DEFAULT NULL,

`tipo` varchar(255) CHARACTER SET latin1 DEFAULT NULL,

`modelo` varchar(255) CHARACTER SET latin1 DEFAULT NULL,

`complemento` varchar(255) CHARACTER SET latin1 DEFAULT NULL,

`tamanho` varchar(255) CHARACTER SET latin1 DEFAULT NULL,

`cor` varchar(255) CHARACTER SET latin1 DEFAULT NULL,

`codproduto` varchar(4) CHARACTER SET latin1 DEFAULT NULL,

`codtipo` varchar(4) CHARACTER SET latin1 DEFAULT NULL,

`codmodelo` varchar(4) CHARACTER SET latin1 DEFAULT NULL,

`codcomplemento` varchar(4) CHARACTER SET latin1 DEFAULT NULL,

`codtamanho` varchar(4) CHARACTER SET latin1 DEFAULT NULL,

`codcor` varchar(4) CHARACTER SET latin1 DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=DYNAMIC;

--

-- Extraindo dados da tabela `codigobarra`

--

INSERT INTO `codigobarra` (`id`, `produto`, `tipo`, `modelo`, `complemento`, `tamanho`, `cor`, `codproduto`, `codtipo`, `codmodelo`, `codcomplemento`, `codtamanho`, `codcor`) VALUES

(0000, '', '', '', '', '', '', '', '', '', '', '', ''),

(0001, 'Agasalho', 'cacharrel', 'abrigo', 'com babado', 'EXTRA GRANDE', 'AMARELO', '100', '200', '300', '400', '10', '500'),

(0002, 'Baby look', 'cotton', 'cadeirão', 'com bolso', 'GESTANTE', 'AZUL', '101', '201', '301', '401', '11', '501'),

(0003, 'Básica', 'crepe', 'capri', 'com cós duplo', 'GRANDE', 'BRANCO', '102', '202', '302', '402', '12', '502'),

(0004, 'Bata', 'helanca', 'cigarrete', 'com cós duplo e corda', 'INFANTIL', 'CINZA', '103', '203', '303', '403', '13', '503'),

(0005, 'Bermuda', 'lã', 'corsário', 'com cós largo', 'INFANTO JUVENIL', 'CINZA CLARO', '104', '204', '304', '404', '14', '504'),

(0006, 'Blusa', 'lastek', 'curta', 'com cós largo e Gel', 'JUVENIL', 'ESTAMPADO', '105', '205', '305', '405', '15', '505'),

(0007, 'Bolero', 'lycra', 'frente única', 'com cós largo e Strass', 'MEDIO', 'MARRON', '106', '206', '306', '406', '16', '506'),

(0008, 'Calça', 'microtel', 'gola', 'com cós simples', 'PEQUENO', 'PRETO', '107', '207', '307', '407', '17', '507'),

(0009, 'Camisete', 'poliester', 'legging', 'com estampa comun', '', 'ROSA', '108', '208', '308', '408', '18', '508'),

(0010, 'Colete', 'poliviscose', 'longa', 'com estampa em tranfer', '', 'ROSA BEBE', '109', '209', '309', '409', '19', '509'),

(0011, 'Jaqueta', 'renda', 'morcego', 'com fru fru', '', 'ROSA PINK', '110', '210', '310', '410', '20', '510'),

(0012, 'Macaquinho', 'ribana', 'pijama', 'com Gel', '', 'ROYAL', '111', '211', '311', '411', '21', '511'),

(0013, 'Regata', 'suplex', 'regata', 'com sobrepor', '', 'TIGRADO', '112', '212', '312', '412', '22', '512'),

(0014, 'Saia', 'viscolycra', 'tubinho', 'com sobrepor sem costura lateral', '', 'VERDE', '113', '213', '313', '413', '23', '513'),

(0015, 'Segunda pele', 'viscose', '', 'com Strass', '', 'VERDE CLARO', '114', '214', '314', '414', '24', '514'),

(0016, 'Short', '', '', 'com viés', '', 'VERDE ESCURO', '115', '215', '315', '415', '25', '515'),

(0017, 'Top', '', '', 'com ziper', '', 'VERDE OLIVA', '116', '216', '316', '416', '26', '516'),

(0018, 'Túnica', '', '', 'tradicional', '', 'VERMELHO', '117', '217', '317', '417', '27', '517'),

(0019, 'não usado', 'não usado', 'não usado', 'não usado', 'não usado', 'não usado', '0', '0', '0', '0', '0', '0');

Link para o comentário
Compartilhar em outros sites

  • 0

A query que insere é essa:

$query = "INSERT INTO teste (produto, codigodebarra) VALUES ('$cod', '$cod')";

$resultado = mysql_query($query) or die ("Could not execute query : $query." . mysql_error());

Se for, em nenhum lugar existe a variável $cod...

Link para o comentário
Compartilhar em outros sites

  • 0
A query que insere é essa:

$query = "INSERT INTO teste (produto, codigodebarra) VALUES ('$cod', '$cod')";

$resultado = mysql_query($query) or die ("Could not execute query : $query." . mysql_error());

Se for, em nenhum lugar existe a variável $cod...

Desculpa pela demora mas to procurando essa solução em tudo quanto é lugar se você puder ajudar, eu errei o codigo o certo é esse:

<a href="index.php"><strong>VOLTAR</strong></a>

<?php

include("add.php");

$conexao = mysql_connect("localhost","root");

if (!$conexao)die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());

$banco = mysql_select_db("anna17_loja17",$conexao);

if (!$banco)die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());

//$temp = array_values($_POST);

//$cod = implode($temp);

$codigo = $_POST['codproduto'] ." ".$_POST['codtipo']." " .$_POST['codmodelo']." " .$_POST['codcomplemento'];

$descricao = $_POST['produto'].$_POST['tipo'].$_POST['modelo'].$_POST['complemento'];

$query = "INSERT INTO teste (produto, codigodebarra) VALUES ('$codigo', '$descricao')";

$resultado = mysql_query($query) or die ("Could not execute query : $query." . mysql_error());

?>

<pre><?php print_r($_POST) ?></pre>

A minha dificuldade, é que os valores não vem pra essa pagina do codigo, vem apenas os indices e por isso eu não consigo salvar os dados certos...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...