Ir para conteúdo

POWERED BY:

Arquivado

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

Dexter Morgan

[Resolvido] 3 Select PHP Mysql

Recommended Posts

seguinte pessoal tenho uma area administrativa para adicionar produtos, e lá faz as opções por select com banco de dados, com 2 select funciona perfeitamente, quando seleciono o 1° select ele chama o 2° de acordo com o 1°, mas agora necessito fazer com 3 selects, sendo que o 3° tbm será chamado de acordo com o 1° select, segue os códigos:

 

pagina slect.php (2° select subcategorias):

 

<?php include "../connection.php"; ?>

<?php

echo "<select class='select-list' name=\"subcategoria\">";
echo "<option>..:: Escolha uma Subcategoria ::..</option>";
$sql = "SELECT id_subcategoria, subcategoria.subcategoria FROM subcategoria INNER JOIN categoria ON categoria.id_categoria = subcategoria.id_categoria WHERE subcategoria.id_categoria = '".$_GET['categoria']."'";
$resultado = mysql_query($sql) or die ("Nenhuma Subcategoria Listada.");
while($linha = mysql_fetch_array($resultado)){
$id_subcategoria = $linha["id_subcategoria"];
$subcategoria = $linha["subcategoria"];
echo "<option value=\"$id_subcategoria\" >$subcategoria</option>";
}
echo "</select>";

?>

 

pagina set.php (3° select conjunto):

 

<?php include "../connection.php"; ?>

<?php

echo "<select class='select-list' name=\"conjunto\">";
echo "<option>..:: Selecione um Conjunto ::..</option>";
$sql = "SELECT id_conjunto, conjunto FROM conjuntos";
$resultado = mysql_query($sql) or die ("Nenhum Conjunto Listado.");
while($linha = mysql_fetch_array($resultado)){
$id_conjunto = $linha["id_conjunto"];
$conjunto = $linha["conjunto"];
echo "<option value=\"$id_conjunto\">$conjunto</option>";
}
echo "</select>";

?>

 

código java:

 

<script type="text/javascript">
var req;
function loadXMLDoc(url,valor) {
req = null;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send(null);
}
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send();
}
}
}
function processReqChange() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById('select').innerHTML = req.responseText;
}
else {
alert("Houve um problema ao Obter os Dados:\n" + req.statusText);
}
}
}
function Select(valor) {
loadXMLDoc("select.php",valor);
}
</script>

 

1° select:

 

echo "<select class='select-list' id=\"categoria\" name=\"categoria\" onChange=\"javascript:Select(this.value);\">";
echo "<option>..:: Selecione uma Categoria ::..</option>";
$sql = "SELECT id_categoria, categoria FROM categoria";
$resultado = mysql_query($sql) or die ("Nenhuma Categoria Listada.");
while($linha = mysql_fetch_array($resultado)){
$id_categoria = $linha["id_categoria"];
$categoria = $linha["categoria"];
echo "<option value=\"$id_categoria\">$categoria</option>";
}
echo "</select>";

 

2° select chamado pelo (div id="select")

 

echo "<div id=\"select\">";
echo "<select class='select-list' name=\"subcategoria\">";
echo "<option>..:: Escolha uma Subcategoria ::..</option>";
echo "</select>";
echo "</div>";

 

3° select chamado pelo (div id="select")

 

echo "<div id=\"select\">";
echo "<select class='select-list' name=\"conjunto\">";
echo "<option>..:: Escolh um Conjunto ::..</option>";
echo "</select>";
echo "</div>";

 

 

 

código completo:

 

<?php include "includes/header.php"; ?>

<?php $current = 1; include("includes/menu.php"); ?>

<div id="content">
<div id="content-background">

<br clear="all" />
<br />

<div class="content-left">
<div class="title-gradient">

<font face="helvetica" color="#333333" size="7">Novo Produto</font>

</div>
</div>

<br clear="all" />
<br />

<center>

<script type="text/javascript">
function validaProduto() {
if (document.formproduto.categoria.selectedIndex==0){
alert("Escolha uma Categoria!")
document.formproduto.categoria.focus()
return false;
}
}
</script>

<script type="text/javascript">
var req;
function loadXMLDoc(url,valor) {
req = null;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send(null);
}
else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send();
}
}
}
function processReqChange() {
if (req.readyState == 4) {
if (req.status == 200) {
document.getElementById('select').innerHTML = req.responseText;
}
else {
alert("Houve um problema ao Obter os Dados:\n" + req.statusText);
}
}
}
function Select(valor) {
loadXMLDoc("select.php",valor);
}
</script>

<?php

include "../connection.php";

$data = date("Y-m-d");
$newdata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);

echo "<table cellSpacing='0' cellPadding='0' width='800' border='0'>";
echo "<tbody>";
echo "<tr>";
echo "<td align='middle'>";

echo "<form id=\"formproduto\" name=\"formproduto\" action=\"produto_insert.php\" method=\"post\" enctype=\"multipart/form-data\" onsubmit=\"return validaProduto(); return false;\">";
echo "<table width='100%' border='0' cellpadding='2' cellspacing='2' bgcolor='#ffffff'>";

echo "<table class='edge table-list' width='800'>";
echo "<tr>";
echo "<td width='18%'><div align='left'><font face='verdana' size='1' color='#222222'>Produto</font></div></td>";
echo "<td width='35%'><input name=\"produto\" type=\"text\" size=\"35\" maxlength=\"255\" /></td>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Publicado</font></div>";
echo "</td>";
echo "<td width='25%'>";
echo "<input class='select-list' name=\"publicado\" value=\"N\" type=\"radio\" /><label><font face='verdana' size='1' color='#222222'>Não</font></label>";
echo "<input class='select-list' name=\"publicado\" value=\"S\" type=\"radio\" checked /><label><font face='verdana' size='1' color='#222222'>Sim</font></label>";
echo "</td>";
echo "</tr>";

echo "<tr>";
echo "<td width='18%'><div align='left'><font face='verdana' size='1' color='#222222'>Modelo</font></div></td>";
echo "<td width='35%'><input name=\"modelo\" type=\"text\" size=\"35\" maxlength=\"255\" /></td>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Página Inicial</font></div>";
echo "</td>";
echo "<td width='25%'>";
echo "<input class='select-list' name=\"inicio\" value=\"N\" type=\"radio\" checked /><label><font face='verdana' size='1' color='#222222'>Não</font></label>";
echo "<input class='select-list' name=\"inicio\" value=\"S\" type=\"radio\" /><label><font face='verdana' size='1' color='#222222'>Sim</font></label>";
echo "</td>";
echo "</tr>";

echo "<tr>";
echo "<td width='18%'><div align='left'><font face='verdana' size='1' color='#222222'>Categoria</font></div></td>";
echo "<td width='35%'>";
echo "<select class='select-list' id=\"categoria\" name=\"categoria\" onChange=\"javascript:Select(this.value);\">";
echo "<option>..:: Selecione uma Categoria ::..</option>";
$sql = "SELECT id_categoria, categoria FROM categoria";
$resultado = mysql_query($sql) or die ("Nenhuma Categoria Listada.");
while($linha = mysql_fetch_array($resultado)){
$id_categoria = $linha["id_categoria"];
$categoria = $linha["categoria"];
echo "<option value=\"$id_categoria\">$categoria</option>";
}
echo "</select>";
echo "</td>";
echo "<td width='25%'><div align='left'><font face='verdana' size='1' color='#222222'>Subcategoria</font></div></td>";
echo "<td width='25%'>";
echo "<div id=\"select\">";
echo "<select class='select-list' name=\"subcategoria\">";
echo "<option>..:: Escolha uma Subcategoria ::..</option>";
echo "</select>";
echo "</div>";
echo "</td>";
echo "</tr>";

echo "<tr>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Comprimento</font></div>";
echo "</td>";
echo "<td width='25%'><input name=\"comprimento\" type=\"text\" size=\"35\" maxlength=\"255\" /></td>";
echo "<td width='18%'><div align='left'><font face='verdana' size='1' color='#222222'>Conjunto</font></div></td>";
echo "<td width='35%'>";
echo "<select class='select-list' id=\"conjunto\" name=\"conjunto\" onChange=\"javascript:Select(this.value);\">";
echo "<option>..:: Selecione um Conjunto ::..</option>";
$sql = "SELECT id_conjunto, conjunto FROM conjuntos";
$resultado = mysql_query($sql) or die ("Nenhum Conjunto Listado.");
while($linha = mysql_fetch_array($resultado)){
$id_conjunto = $linha["id_conjunto"];
$conjunto = $linha["conjunto"];
echo "<option value=\"$id_conjunto\">$conjunto</option>";
}
echo "</select>";
echo "</td>";
echo "</tr>";

echo "<tr>";
echo "<td width='18%'><div align='left'><font face='verdana' size='1' color='#222222'>Largura</font></div></td>";
echo "<td width='35%'><input name=\"largura\" type=\"text\" size=\"35\" maxlength=\"255\" /></td>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Cores</font></div>";
echo "</td>";
echo "<td width='25%'>";
echo "<input class='select-list' name=\"cores\" value=\"N\" type=\"radio\" checked /><label><font face='verdana' size='1' color='#222222'>Não</font></label>";
echo "<input class='select-list' name=\"cores\" value=\"S\" type=\"radio\" /><label><font face='verdana' size='1' color='#222222'>Sim</font></label>";
echo "</td>";
echo "</tr>";

echo "<tr>";
echo "<td width='18%'><div align='left'><font face='verdana' size='1' color='#222222'>Altura</font></div></td>";
echo "<td width='35%'><input name=\"altura\" type=\"text\" size=\"35\" maxlength=\"255\" /></td>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Iluminaria</font></div>";
echo "</td>";
echo "<td width='25%'>";
echo "<input class='select-list' name=\"iluminaria\" value=\"N\" type=\"radio\" checked /><label><font face='verdana' size='1' color='#222222'>Não</font></label>";
echo "<input class='select-list' name=\"iluminaria\" value=\"S\" type=\"radio\" /><label><font face='verdana' size='1' color='#222222'>Sim</font></label>";
echo "</td>";
echo "</tr>";
echo "</table>";

echo "<br />";

echo "<table class='edge table-list' width='800'>";
echo "<tr>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Descrição   </font></div>";
echo "</td>";
echo "<td colspan='3'>";
echo "<textarea name=\"descricao\" cols=\"80\" rows=\"6\" border=\"1\"></textarea>";
echo "</td>";
echo "</tr>";
echo "</table>";

echo "<br />";

echo "<table class='edge table-list' width='800'>";
echo "<tr>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Especificações</font></div>";
echo "</td>";
echo "<td colspan='3'>";
echo "<textarea name=\"especificacoes\" cols=\"80\" rows=\"6\" border=\"1\"></textarea>";
echo "</td>";
echo "</tr>";
echo "</table>";

echo "<br />";

echo "<table class='edge table-list' width='800'>";
echo "<tr>";
echo "<td width='25%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Itens   </font></div>";
echo "</td>";
echo "<td colspan='3'>";
echo "<textarea name=\"itens\" cols=\"80\" rows=\"6\" border=\"1\"></textarea>";
echo "</td>";
echo "</tr>";
echo "</table>";

echo "<br />";

echo "<table class='edge table-list' width='800'>";
echo "<tr>";
echo "<td width='10%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Cadastro</font></div>";
echo "</td>";
echo "<td width='50%'>";
echo "<font face='verdana' size='1' color='#222222'><b>$newdata</b></font>";
echo "</td>";
echo "</tr>";

echo "<tr>";
echo "<td width='10%'><div align='left'><font face='verdana' size='1' color='#222222'>Preço</font></div></td>";
echo "<td width='50%'><input name=\"preco\" type=\"text\" size=\"35\" maxlength=\"255\" /></td>";
echo "</tr>";

echo "<tr>";
echo "<td width='10%'>";
echo "<div align='left'><font face='verdana' size='1' color='#222222'>Estoque</font></div>";
echo "</td>";
echo "<td width='50%'><input name=\"estoque\" type=\"text\" size=\"35\" maxlength=\"255\" /></td>";
echo "</tr>";

echo "<tr>";
echo "<td width='10%'>";
echo "<div align='left'><font face='verdana' size='1' color='#333333'>Foto</font></div>";
echo "</td>";
echo "<td width='50%'><input type=\"file\" name=\"foto\" /></td>";
echo "</tr>";

echo "<tr>";
echo "<td width='10%'>";
echo "<div align='left'><font face='verdana' size='1' color='#333333'>Confirmação</font></div>";
echo "</td>";
echo "<td width='50%'><input class='button' type=\"submit\" value=\"novo produto\" />  <input class='button' type=\"reset\" value=\"redefinir produto\" /></td>";
echo "</tr>";
echo "</table>";

echo "</form>";
echo "</table>";

echo "</td>";
echo "</tr>";
echo "</tbody>";
echo "</table>";

?>

</center>

</div>
</div>

<br clear="all" />
<br />

<?php include "includes/footer.php"; ?>

 

não consigo fazer com que ao 1° select ser selecionado os outros 2 apareçam de acordo com a escolha, lembrando que no banco de dados as tabelas ja estão relacionadas para isso ... ja tentei e não consegui...

 

obg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, você não sabe onde alterar, é isso?

Segue o código comentado:

 

<script type="text/javascript">
var req;

// Função que processa os dados
function loadXMLDoc(url,valor) {
   req = null;
   if (window.XMLHttpRequest) {
       req = new XMLHttpRequest();
       req.onreadystatechange = processReqChange;
       req.open("GET", url+'?categoria='+valor, true);
       req.send(null);
   } else if (window.ActiveXObject) {
       req = new ActiveXObject("Microsoft.XMLHTTP");
       if (req) {
           req.onreadystatechange = processReqChange;
           req.open("GET", url+'?categoria='+valor, true);
           req.send();
       }
   }
}

// Função que insere os dados no 2º select
function processReqChange() {
   if (req.readyState == 4) {
       if (req.status == 200) {
           document.getElementById('select').innerHTML = req.responseText;
       } else {
           alert("Houve um problema ao Obter os Dados:\n" + req.statusText);
       }
   }
}

// Função chamada ao mudar o valor do 1º select
function Select(valor) {
   loadXMLDoc("select.php",valor);
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é não sei onde alterar para que ao escolher o valor no 1° select ele preencha os outros 2 selects ....

 

esse script trabalha com 2 selects ja tentei mudar mas deu errado tbm...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então Lucas, em javascript eu não manjo muito não, tentei fazer alteração e não funcionou, o que ocorreu foi dele puxar os dois select com mesmo valor, mas o resultado que eu quero não houve....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente você precisa diferenciar os dois selects, eles têm o mesmo ID. ID é único, não pode repetir na página para mais de um elemento.

 

2° select chamado pelo (div id="select")

 

echo "<div id=\"select\">";
echo "<select class='select-list' name=\"subcategoria\">";
echo "<option>..:: Escolha uma Subcategoria ::..</option>";
echo "</select>";
echo "</div>";

 

 

3° select chamado pelo (div id="select")

 

echo "<div id=\"select\">";
echo "<select class='select-list' name=\"conjunto\">";
echo "<option>..:: Escolh um Conjunto ::..</option>";
echo "</select>";
echo "</div>";

Depois, nas funções que destaquei, você manipula cada um deles com o getElementById(), inserindo os dados após a requisição.

A requisição (loadXMLDoc()) você terá que alterar por si, pois só você sabe o que tem que acontecer no segundo select.

Compartilhar este post


Link para o post
Compartilhar em outros sites

já não sei mais o que fazer, não manjo muito com JavaScript e sóh apanhei até agora, do jeito que ta aqui ele não mostra o select das subcategorias duplica o select conjuntos

 

<script type="text/javascript">
var req;
function loadXMLDoc(url,valor){
req = null;
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send(null);
}
else if(window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
if(req){
req.onreadystatechange = processReqChange;
req.open("GET", url+'?categoria='+valor, true);
req.send();
}
}
}
function processReqChange(){
if(req.readyState == 4){
if(req.status == 200){
document.getElementById('select').innerHTML = req.responseText;
document.getElementById('set').innerHTML = req.responseText;
}
else{
alert("" + req.statusText);
}
}
}
function Select(valor){
loadXMLDoc("select.php",valor);
}
function Set(valor){
loadXMLDoc("set.php",valor);
}
</script>

 

echo "<select class='select-list' id=\"categoria\" name=\"categoria\" onChange=\"javascript:Select(this.value); Set(this.value);\">";
echo "<option>..:: Selecione uma Categoria ::..</option>";
$sql = "SELECT id_categoria, categoria FROM categoria";
$resultado = mysql_query($sql) or die ("Nenhuma Categoria Listada.");
while($linha = mysql_fetch_array($resultado)){
$id_categoria = $linha["id_categoria"];
$categoria = $linha["categoria"];
echo "<option value=\"$id_categoria\">$categoria</option>";
}
echo "</select>";

 

echo "<div id=\"select\">";
echo "<select class='select-list' name=\"subcategoria\">";
echo "<option>..:: Escolha uma Subcategoria ::..</option>";
echo "</select>";
echo "</div>";

echo "<div id=\"set\">";
echo "<select class='select-list' name=\"conjunto\">";
echo "<option>..:: Escolha um Conjunto ::..</option>";
echo "</select>";
echo "</div>";

 

select.php

<?php include "../connection.php"; ?>

<?php

echo "<select class='select-list' name=\"subcategoria\">";
echo "<option>..:: Escolha uma Subcategoria ::..</option>";
$sql = "SELECT id_subcategoria, subcategoria.subcategoria FROM subcategoria INNER JOIN categoria ON categoria.id_categoria = subcategoria.id_categoria WHERE subcategoria.id_categoria = '".$_GET['categoria']."'";
$resultado = mysql_query($sql) or die ("Nenhuma Subcategoria Listada.");
while($linha = mysql_fetch_array($resultado)){
$id_subcategoria = $linha["id_subcategoria"];
$subcategoria = $linha["subcategoria"];
echo "<option value=\"$id_subcategoria\" >$subcategoria</option>";
}
echo "</select>";

?>

 

set.php

<?php include "../connection.php"; ?>

<?php

echo "<select class='select-list' name=\"conjunto\">";
echo "<option>..:: Escolha um Conjunto ::..</option>";
$sql = "SELECT id_conjunto, conjuntos.conjunto FROM conjuntos INNER JOIN categoria ON categoria.id_categoria = conjuntos.id_categoria WHERE conjuntos.id_categoria = '".$_GET['categoria']."'";
$resultado = mysql_query($sql) or die ("Nenhum Conjunto Listado.");
while($linha = mysql_fetch_array($resultado)){
$id_conjunto = $linha["id_conjunto"];
$conjunto = $linha["conjunto"];
echo "<option value=\"$id_conjunto\" >$conjunto</option>";
}
echo "</select>";

?>

 

ta dessa forma e da erro duplicando ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está duplicando porque você está jogando o mesmo valor para os dois selects após cada requisição:

 

document.getElementById('select').innerHTML = req.responseText;
document.getElementById('set').innerHTML = req.responseText;

Se você chamar o select.php, você deve popular apenas o respectivo select. Da mesma forma o set.php.

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.