Resgatar o conteúdo de uma seleção para "n" linhas
Meus amigos,
Eu tenho uma tela onde meu usuário responde cotações que podem ter 1 único produto, como vários.
Nesta tela ele tem de selecionar por qual distribuidor irá fazer esta cotação, mas cada distribuidor tem "n" centros de distribuição, por exemplo: o distribuidor A tem CD em SP, RJ e ES; já o distribuidor B tem CD na BA e PR.
Eis meu problema: Quando entramos na tela para responder as cotações eu não sei dizer quantos produtos vem para essa cotação. Primeiro ele seleciona o distribuidor, e em seguida vai colocar preço nos itens da cotação, é aqui que a coisa ficou feia (para mim é claro), dentro de uma mesma cotação ele pode ter, por exemplo 2 produtos que serão do distribuidor A, mas o primeiro é do CD SP e o segundo do CD RJ.
Eu fiz um onchange que quando seleciono o distribuidor ele vai em uma lista e traz somente os CDs do distribuidor selecionado, esse filtro funciona somente para o primeiro produto da cotação, a partir do segundo não mostra os CDs do distribuidor, eu até sei que tem a ver com o ID que é um para um, mas gostaria da ajuda de vocês para saber se tem alguma solução, segue o código:
Aqui é onde eu mostro os distribuidores para o usuário selecionar com qual quer trabalhar na cotação em questão. Vejam que tem um onchange chamando a "lista" para filtrar, enviando como parâmetro o ID do distribuidor escolhido.
<select id="distribuidor" name="distribuidor" onchange="$('#lista2').load('lista_cds_distrb.php?CodDistrib='+$('#distribuidor').val(),$(this).parents('form:first').serialize())" style="height: 33px; width: 100%; border-color: #DCDCDC;">
<option value="0">Escolha um Distribuidor</option>
<?php
for ($y = 0; $y < count($distribuidores); $y++) {
echo "<option value=" . $distribuidores[$y]['forn_codigo'] . ">" . utf8_encode($distribuidores[$y]['forn_fantasia']) . "</option>";
}
?>
</select>
**lista_cd_distrib.php**
Este arquivo busca e devolve somente os CDs da distribuidora selecionada acima
$CodDistrib = $_GET['CodDistrib'];
$BsCdDistrb = "SELECT loca_codigo,loca_cd FROM local WHERE forn_codigo = " . $CodDistrib;
$sqlretBCD = odbc_exec($conn_banco, $BsCdDistrb);
if($sqlretBCD)
{
while(odbc_fetch_row($sqlretBCD))
{
$loca_codigo = odbc_result($sqlretBCD,"loca_codigo");
$loca_cd = utf8_encode(odbc_result($sqlretBCD,"loca_cd"));
echo "<option value='".$loca_codigo."'>".$loca_cd."</option>";
}
}
Este código está dentro de um loop que trás todos os produtos da cotação, linha a linha. Vejam que o ID do select é "lista2", ou seja, o mesmo ID do onchange.
E como eu disse acima, neste momento se tem 2 produtos o lista2 devolve os CDs certinhos do distribuidor escolhido, mas a partir do 2º produto o select fica vazio.
Tem como "esticar" este processo para os outros produtos da lista?
<?php for ($i = 0; $i < count($Itens); $i++) { ?>
<select id="lista2" name="item_distrib[]" style="height: 33px; border-color: #DCDCDC;">
</select>
<?php } ?>
Escrevi demais, consegui me fazer entender??
Já agradeço de antemão a ajuda de vocês.Discussão (0)
Carregando comentários...